标签:Sun 虚拟机 VM 笔记 学习 线程 HotSpot JVM 方法
-
历史
- Sun Classic VM,Sun公司的产品,第一款商用Java虚拟机,只用解释器执行java代码
- Exact VM,编译器和解释器混合工作。出现时间短,被后来的HotSpot VM替代
- HotSpot VM,2007开源,一直用到现在的SDK中
- KVM,Sun产品,简单、轻量级,高度可移植。嵌入式设备中使用,如手机。
- JRockit VM,2008,BEA开发(被Oracle收购),专注服务端应用
- J9 VM,IBM产品
- Dalvik,没按JVM规范实现,基于寄存器架构。google产品,Android手机专用
- 微软JVM,97年被Sun公司告了之后就退出舞台
- Taobao VM,阿里服务器专用。基于HotSpot深度定制,放弃兼容性,拥抱高性能。
-
内存结构
-
线程独占区
-
程序计数器
记录着当前线程所执行的字节码的行号
-
虚拟机栈
- 基本元素是栈帧。
- 栈帧包含:局部变量表、操作数栈、动态链接、方法出口
- 程序中的每一次方法调用都会有一个栈帧存储到虚拟机栈中
-
本地方法栈
- 同上,是用于native方法的
- HotSpot将虚拟机栈和本地方法栈合并实现
-
-
线程共享区
-
堆
- 存放对象。根据生命周期不同,可分为下列两种区域
- 新生代:Eden、Survivor
- 老年代:Tenured
-
方法区
- 编译代码的存储区域,存储每个类的结构
- 类信息
- 运行时常量池
- 字段、方法数据
- 方法和构造函数的代码
-
-
特殊的内存:直接内存
-
它不是jvm管理的一部分
- 由native方法即C/C++方法申请的
-
-
- 垃圾回收机制
- class文件结构
- 类加载机制
- 字节码执行引擎
- 性能监控工具
- 性能调优
- 虚拟机编译及运行时优化
- Java高级线程
标签:Sun,虚拟机,VM,笔记,学习,线程,HotSpot,JVM,方法 来源: https://blog.csdn.net/wyl530274554/article/details/111402676
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。