- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java对象创建学习资料.pdf
1 Java 技术与Java 虚拟机
Java 有四方面组成:
Java 编程语言、Java 类文件格式、Java 虚拟机和Java 应用程序接口(Java API)
Java 语言的运行过程:
开发人员在j ava 平台编写Java 代码(.java 文件) ,然后将之编译成字节码(.class 文件) 。.class
文件被装入内存进入虚拟机,被解释器解释执行,或者是被即时代码发生器有选择的转换成
机器码执行。Java 平台由Java 虚拟机和 Java 应用程序接口搭建,Java 语言则是进入这个平
台的通道,用Java 语言编写并编译的程序可以运行在这个平台上。
在Java 平台的结构: JVM 处在核心的位置,它是一个虚构出来的计算机,是通过在实际的
计算机上仿真模拟各种计算机功能来实现的。Java 虚拟机有自己完善的硬件架构,如处理器、
堆栈、寄存器等,还具有相应的指令系统。JVM 屏蔽了与具体操作系统平台相关的信息,使得
Java 程序只需生成在 Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改
地运行。JVM 的下方是移植接口,移植接口由两部分组成:适配器和Java 操作系统, 其中
依赖于平台的部分称为适配器;JVM 通过移植接口在具体的平台和操作系统上实现;在
JVM 的上方是Java 的基本类库和扩展类库以及它们的API , 利用Java API 编写的应用程
序(application) 和小程序(Java applet) 可以在任何Java 平台上运行而无需考虑底层平台, 就
是因为有Java 虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java 的平台无关性。
2 Java 虚拟机的体系结构
JVM 可以由不同的厂商来实现。由于厂商的不同必然导致JVM 在实现上的一些不同,然
而JVM 还是可以实现跨平台的特性,这就要归功于设计JVM 时的体系结构了。
我们知道,一个JVM 实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、
数据类型和指令这些部分,它们描述了JVM 的一个抽象的内部体系结构,其目的不光规定
实现JVM 时它内部的体系结构,更重要的是提供了一种方式,用于严格定义实现时的外部
行为。每个JVM 都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载
子系统;另外的一个负责执行包含在已装载的类或接口中的指令,叫做运行引擎。每个JVM
又包括方法区、堆、Java 栈、程序计数器和本地方法栈这五个部分,这几个部分和类装载
机制与运行引擎机制一起组成的体系结构图为:
JVM 体系结构
图3JVM 的体系结构
JVM 的每个实例都有一个它自己的方法域和一个堆,运行于JVM 内的所有的线程都共
享这些区域;当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的类信息,并把
它们放到方法域中;当程序运行的时候,JVM 把程序初始化的所有对象置于堆上;而每个
线程创建的时候,都会拥有自己的程序计数器和Java 栈,其中程序计数器中的值指向下一
条即将被执行的指令,线程的Java 栈则存储为该线程调用Java 方法的状态;本地方法调
用的状态被存储在本地方法栈,该方法栈依赖于具体的实现。
执行引擎处于JVM 的核心位置,在Java 虚拟机规范中,它的行为是由指令集所决定的。尽管对于每条指
令,规范很详细地说明了当JVM 执行字节码遇 到指令时,它的实现应该做什么,但对于怎么做却言之甚
少。Java 虚拟机支持大约248 个字节码。每个字节码执行一种基本的CPU 运算,例如,把一个整数 加到寄
存器,子程序转移等。Java 指令集相当于Java 程序的汇编语言。
虚拟机的内层循环的执行过程如下:
do{
取一个操作符字节;
根据操作符的值执行一个动作;
}while(程序未结束)
由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中操作数的数量
和大小是由操作符决定的。如果操作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16 位
的参数存放时占用两个字节,其值为:
第一个字节*256+第二个字节字节码。
指令流一般只是字节对齐的。指令tableswitch 和lookup 是例外,在这两条指令内部要求强制的4 字节边界
对齐。
对于本地方法接口,实现JVM 并不要求一定要有它的支持,甚至可以完全没有。Sun 公司
您可能关注的文档
- (二)企业聘用残疾人设施设备改造.doc
- (作文)青年要自觉践行社会主义核心价值观.doc
- (修改定稿)对加强基层民主自治建设的几点思考.doc
- (刑)多媒体在现代教育教学中的地位和作用.doc
- (打)MOOC_能否颠覆教育流程_尚俊杰.pdf
- (无候选人直选样本).doc
- (王盟)改革开放以来通货膨胀与经济增长关系的实证研究.pdf
- (百库)领导干部工作作风改进与群众路线践行研究.doc
- (站起来坐下).pdf
- (第三稿)山东省枣庄市主导产业选择研究.doc
- 2025年天津市冷链物流基地配套道路建设可行性研究报告.docx
- 2025年天津市母婴护理会所专业化服务升级路径可行性研究报告.docx
- 2025年成都市私立医院医美抗衰中心创建可行性研究报告.docx
- 2025年成都市淡化海水在城市道路清洗领域的应用可行性研究报告.docx
- 2025年上海市环卫厨余垃圾生物处理技术应用可行性研究报告.docx
- 2025年天津市花西子针对户外运动妆容的可行性.docx
- 2025年上海市生物发电于秸秆炭化还田协同发电的可行性研究.docx
- 2025年天津市物造纸在可降解农用地膜领域的应用可行性研究报告.docx
- 2025年天津市无人值守充电站智能运维可行性研究报告.docx
- 2025年天津市竹荪种植连作障碍防治技术可行性研究报告.docx
文档评论(0)