欢迎来到天天文库
浏览记录
ID:17567172
大小:355.00 KB
页数:7页
时间:2018-09-03
《linux下java虚拟机培训》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux下java虚拟机培训学习目标:帮助学员学会如何在Linux下安装java虚拟机。学习效果:通过本章的学习,使学员了解和掌握如何在Linux下安装java虚拟机,并能独立操作。Java虚拟机(JVM)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代
2、码能够在该系统上运行。 Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。一、Java虚拟机(JVM)概述为什么要使用Java虚拟机 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语
3、言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。二、Java虚拟机JVM规格描述 JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提范的任何系统上运行。JVM对其实现的某些方面给出了具体的定义,特别是对Java可执行代码,即字节码(Bytecode)的格式给出了明确的规格。这一规格包括操作码和操作数的语法和数值、标识符的数值表示方式、以及Java类文件中的Java对象、常量缓冲池在JVM的存储映象。这些定
4、义为JVM解释器开发人员提供了所需的信息和开发环境。Java的设计者希望给开发人员以随心所欲使用Java的自由。JVM定义了控制Java代码解释执行和具体实现的五种规格,它们是:*JVM指令系统*JVM寄存器*JVM栈结构*JVM碎片回收堆*JVM存储区三、Java虚拟机JVM的体系结构刚才已经提到,JVM可以由不同的厂商来实现。由于厂商的不同必然导致JVM在实现上的一些??归功于设计JVM时的体系结构了。我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构
5、,其目的不光规定实现JVM时它内部的体系结构,更重要的是提供了一种方式,用于严格定义实现时的外部行为。每个JVM都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载子系统;另外的一个负责执行包含在已装载的类或接口中的指令,叫做运行引擎。每个JVM又包括方法区、堆、Java栈、程序计数器和本地方法栈这五个部分,这几个部分和类装载机制与运行引擎机制一起组成的体系结构图为:图3JVM的体系结构 JVM的每个实例都有一个它自己的方法域和一个堆,运行于JVM内的所有的线程都共享这些区域;当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的
6、类信息,并把它们放到方法域中;当程序运行的时候,JVM把程序初始化的所有对象置于堆上;而每个线程创建的时候,都会拥有自己的程序计数器和Java栈,其中程序计数器中的值指向下一条即将被执行的指令,线程的Java栈则存储为该线程调用Java方法的状态;本地方法调用的状态被存储在本地方法栈,该方法栈依赖于具体的实现。 四、Java虚拟机JVM的运行过程 上面对虚拟机的各个部分进行了比较详细的说明,下面通过一个具体的例子来分析它的运行过程。 虚拟机通过调用某个指定类的方法main启动,传递给main一个字符串数组参数,使指定的类被装载,同时链接该类所使用
7、的其它的类型,并且初始化它们。整个过程如下:图4:JAVA虚拟机的运行过程四、Linux下Java虚拟机的安装下图所看到的文件就是Linux操作系统中的JAVA虚拟机安装文件。现在我们开始自己的安装过程。首先,请打开Linux终端,输入cd/mnt/wind/Linux软件/JAVA虚拟机,接着按下回车键。cd命令是用来让终端进入某个文件夹。作用和DOS下的cd命令完全一样。“/mnt/wind/Linux软件/JAVA虚拟机”目录是我们存放j2sdk-1-linux-i586.bin文件的绝对路径。 然后,下一个命令是./j2sdk-1_4_
8、2_09-linux-i586.bin,按下回车。命令“./”是意思是执行,朋友们看看我们现在执行的是哪个文件呢?当然是./j2sdk-
此文档下载收益归作者所有