- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
每个Java开发者都知道Java字节码是执行在JRE(Java Runtime Environment Java运行时环境)上的。JRE中最重要的部分是Java虚拟机(JVM),JVM负责分析和执行Java字节码。Java开发人员并不需要去关心JVM是如何运行的。在没有深入理解JVM的情况下,许多开发者已经开发出了非常多的优秀的应用以及Java类库。不过,如果你了解JVM的话,你会更加了解Java的,并且你会轻松解决那些看似简单但是无从下手的问题。 因此,在这篇文件里,我会阐述JVM是如何运行的,包括它的结构,它如何去执行字节码,以及按照怎样的顺序去执行,同时我还会给出一些常见错误的示例以及对应的解决办法。最后,我还会讲解Java 7中的一些新特性。 虚拟机(Virtual Machine) JRE是由Java API和JVM组成的。JVM的主要作用是通过Class Loader来加载Java程序,并且按照Java API来执行加载的程序。 虚拟机是通过软件的方式来模拟实现的机器(比如说计算机),它可以像物理机一样运行程序。设计虚拟机的初衷是让Java能够通过它来实现WORA(Write Once Run Anywher 一次编译,到处运行),尽管这个目标现在已经被大多数人忽略了。因此,JVM可以在不修改Java代码的情况下,在所有的硬件环境上运行Java字节码。 Java虚拟机的特点如下: 基于栈的虚拟机:Intel x86和ARM这两种最常见的计算机体系的机构都是基于寄存器的。不同的是,JVM是基于栈的。 符号引用:除了基本类型以外的数据(类和接口)都是通过符号来引用,而不是通过显式地使用内存地址来引用。 垃圾回收机制:类的实例都是通过用户代码进行创建,并且自动被垃圾回收机制进行回收。 通过对基本类型的清晰定义来保证平台独立性:传统的编程语言,例如C/C++,int类型的大小取决于不同的平台。JVM通过对基本类型的清晰定义来保证它的兼容性以及平台独立性。 网络字节码顺序:Java class文件用网络字节码顺序来进行存储:为了保证和小端的Intel x86架构以及大端的RISC系列的架构保持无关性,JVM使用用于网络传输的网络字节顺序,也就是大端。 虽然是Sun公司开发了Java,但是所有的开发商都可以开发并且提供遵循Java虚拟机规范的JVM。正是由于这个原因,使得不同的Oracle HotSpot和IBM JVM等不同的JVM能够并存。Google的Android系统里的Dalvik VM也是一种JVM,虽然它并不遵循Java虚拟机规范。和基于栈的Java虚拟机不同,Dalvik VM是基于寄存器的架构,因此它的Java字节码也被转化成基于寄存器的指令集。 Java字节码(Java bytecode) 为了保证WORA,JVM使用Java字节码这种介于Java和机器语言之间的中间语言。字节码是部署Java代码的最小单位。 在解释Java字节码之前,我们先通过实例来简单了解它。这个案例是一个在开发环境出现的真实案例的总结。 现象 一个一直运行正常的应用突然无法运行了。在类库被更新之后,返回下面的错误。 Exception?in?thread?main?java.lang.NoSuchMethodError:?com.nhn.user.UserAdmin.addUser(Ljava/lang/String;)V ? ????at?com.nhn.service.UserService.add(UserService.java:14) ? ????at?com.nhn.service.UserService.main(UserService.java:19)? 应用的代码如下,而且它没有被改动过。 //?UserService.java ? … ? public?void?add(String?userName)?{ ? ????admin.addUser(userName); ? }? 更新后的类库的源代码和原始的代码如下。 //?UserAdmin.java?-?Updated?library?source?code ? … ? public?User?addUser(String?userName)?{ ? ????User?user?=?new?User(userName); ? ????User?prevUser?=?userMap.put(userName,?user); ? ????return?prevUser; ? } ? //?UserAdmin.java?-?Original?library?source?code ? … ? public?void?addUser(String?userName)?{
您可能关注的文档
- “金农”工程一期项目(四川省建设部分)应用系统性能测.doc
- 《UnixShell实例精解》-学习笔记.doc
- 《国产DCS系统》.doc
- 《计算机应用基础》习题册加答案.doc
- 【单子】给你一台电脑复制机---VMware虚拟机安装使用教程.doc
- 0 安装和使用虚拟机.doc
- AIX+5L操作系统维护手册.doc
- CentOs63-jdk-tomcat-oracle安装配置说明.doc
- Cognos Unix环境部署.doc
- Cognos Unix环境部署8665262.doc
- 谈淼华 Linux下视频监控系统的设计与实现.doc
- 图文教程利用VMware虚拟机一步一步学着做GHOSTXP.doc
- 无需刻录dmg光盘- 教你在VMware Workstation 70 虚拟.doc
- 无需刻录DMG光盘,教你在VMware Workstation 70虚拟机.doc
- 新手必读!虚拟机90安装教程.doc
- 虚拟化厂商比较 Vmware Microsoft Citrix.doc
- 虚拟机+Linux+SlickEdit+FTP+Xshell+FileZilla+小企鹅.doc
- 虚拟机Virtual Box安装Linux56+Oracle10205.doc
- 虚拟机VMware Workstation80安装以及创建windows操作.doc
- 虚拟机安装教程.doc
最近下载
- 4.3免疫失调课件(共36张PPT)高中生物学 人教版(2019)选择性必修一.pptx VIP
- 新解读《JB_T 8446 - 2013隐极式同步发电机转子匝间短路测定方法》必威体育精装版解读.docx VIP
- 一种基于伯努利吸附原理的爬壁检测机器人.pdf VIP
- ZEEKR知识自测及参考答案.docx VIP
- 徐宁金枪手人物介绍水浒传.pptx VIP
- 2025年CSP-S初赛真题(文末附答案).pdf VIP
- 江苏开放大学设计思维与创意设计创意元素训练.doc VIP
- (2024新版本)人教版七年级上册生物全册教案.doc
- 自考劳动和社会保障法历年真题.pdf VIP
- 制冷用水平管降膜蒸发器管束换热优化研究.pdf VIP
文档评论(0)