尚高级技术谈谈你对JVM理解java8虚拟机有什么.pdf

尚高级技术谈谈你对JVM理解java8虚拟机有什么.pdf

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
• JVM位置 JVM是运行在操作系统之上的,它与硬件没有直接的交互 类装载器ClassLoader 负责加载class文件,class文件在文件开头有特定的文件标示, 并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由 Execution Engine决定 echo %JAVA_HOME% echo %PATH% echo %CLASSPATH% 类装载器ClassLoader2 • 虚拟机自带的加载器 • 启动类加载器 (Bootstrap)C++ • 扩展类加载器 (Extension)Java • 应用程序类加载器 (AppClassLoader) Java 也叫系统类加载器,加载当前应用的 classpath的所有类 • 用户自定义加载器 Java.lang.ClassLoader的子类,用户 可以定制类的加载方式 类装载器ClassLoader3 • Code案例 • sun.misc.Launcher 它是一个java虚拟机的 应用 Execution Engine执行引擎负责解释命令,提 交操作系统执行。 Native Interface本地接口 本地接口的作用是融合不同的编程语言为 Java 所用,它的初 衷是融合 C/C++程序,Java 诞生的时候是 C/C++横行的时候,要想立 足,必须有调用 C/C++程序,于是就在内存中专门开辟了一块区域处理 标记为native的代码,它的具体做法是 Native Method Stack中登记 native方法,在Execution Engine 执行时加载native libraies。 目前该方法使用的越来越少了,除非是与硬件有关的应用,比 如通过Java程序驱动 或者Java系统管理生产设备,在企业级应用 中已经比较少见。因为现在的异构领域间的通信很发达,比如可以使用 Socket通信,也可以使用Web Service等等,不多做介绍。 Native Method Stack 它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库。 PC寄存器 每个线程都有一个程序计数器,是线程私有的,就是一个指针, 指向方法区中的方法字节码 (用来 指向下一条指令的地址,也即将 要执行的指令代码),由执行引擎 下一条指令,是一个非常小的内 存空间,几乎可以忽略不记。 3 Method Area 方法区 方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊方 法如构造函数,接口代码也在此定义。简单说,所有定义的方法的信息都保存 在该区域,此区属于共享区间。 静态变量+常量+类信息(构造方法/接口定义)+运行时常量池存在方法区中 But 实例变量存在堆内存中,和方法区无关 6 Stack 栈是什么 栈也叫栈内存,主管Java程序的运行,是 程创建时创建,它 的生命期是跟随线程的生命期,线程结束栈内存也就释放,对于

文档评论(0)

183****7931 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

认证主体翟**

1亿VIP精品文档

相关文档

相关课程推荐