读书笔记:深入理解Java虚拟机_JVM高级特性与最佳实践_笔记一

1.1概述
Java程序设计语言、Java虚拟机、Java API类库这三个部分统称为JDK
JDK是用于支持Java程序开发的最小环境

1.2技术体系
Java Card:小内存设备(智能卡)平台
Java ME: 移动终端
Java SE: 桌面级应用
Java EE:多层架构的企业级应用(ERP、CRM)含有Java SE API –J2EE

1.3发展史
里程碑JDK1.2:将java拆分为三个方向 ME,SE,EE。这个版本第一次内置JIT编译器(即时编译器)HotSpot 可以参数切换为HotSpot
JDK1.3 HotSpot VM成为默认虚拟机
这里简单了解一下JIT编译器
HOT SPOT(热点)虚拟机: 具有编译价值的代码(可能多次执行的代码),然后通知JIT编译器以方法为单位进行编译,如果一个方法被频繁调用,或方法中有效循环次数很多,将会分别触发标准编译和OSR(栈上替换)编译动作。
通过编译器与解释器恰当地协同工作,可以在最优化的程序响应时间与最佳执行性能中取得平衡,而且无须等待本地代码输出才能执行程序,
即时编译的时间压力也相对减小,这样有助于引入更多的代码优化技术,输出质量更高的本地代码。(通过一次性编译放到热点区域)其他的使用逐条翻译的方法。
JDK1.5语法有了很大的改进:加入自动装拆箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach)
2006年Java开源–衍生OpenJDK 除了注解不一致其他都相同

1.4虚拟机发展史
Sun Classic VM 第一款Java虚拟机 使用纯解释器来执行Java代码可外挂JIT,但是编译慢,执行效率低
Exact VM 两级即时编译器、编译器、解释器混合工作模式。特点使用了准确式内存管理(虚拟机知道内存中某个数据的具体类型(引用类型或者基础类型)比如内存存在一个32位的整数123456,可以分清他是否是引用类型指向123456的内存地址还是数值为123456的整数)
–可以在GC(垃圾收集)时候准确判断堆上的数据是否还可能被使用
–好处:蔽去了基于handler的查找,减少每次定位对象时候查找的开销
HotSpot VM 特点热点代码探测技术 -通过执行技术器找到具有编译价值的代码通过JIT以方法为单位进行编译(如果一个方法被频繁调用,将会触发标准编译和OSR(栈上替换)编译动作。通过编译器和解释器恰当工作,而达到相应时间和执行性能最优解,无须等待本地代码输出。)
HotSpot的工作方法

1.5展望未来
1.5.1模块化
1.5.2混合语言
1.5.3多核并行(多线程)
JDK 1.5引入java.util.concurrent实现粗粒度的并行框架。
JDK 1.7加入java.util.concurrent.forkjoin进行扩充–Fork/Join
1.5.4 进一步丰富语法

总结:
一什么是JDK:

  • Java程序设计语言、Java虚拟机、Java API类库这三个部分统称为JDK
    也就是说JDK是用于支持Java程序开发的最小环境
    二、本章重点应该记住Java的几种技术体系:

  • Java Card:小内存设备(智能卡)平台

  • Java ME: 移动终端
  • Java SE: 桌面级应用
  • Java EE:多层架构的企业级应用(ERP、CRM)含有Java SE API –J2EE

三、Java发展体系中的几种虚拟机及其特点:

  • Sun Classic VM:Java虚拟机 使用纯解释器来执行Java代码可外挂JIT,但是编译慢 ,执行效率低
  • Exact VM :两级即时编译器、编译器、解释器混合工作模式,最大的特点是可以准确识别内存中的一个数据是引用类型还是基础类型–可以更好的用于GC收集
  • Hop Spot:热点编译器:具有编译价值的代码(可能多次执行的代码),然后通知JIT编译器以方法为单位进行编译也集成了准确式内存管理。

猜你喜欢

转载自blog.csdn.net/weixin_40763557/article/details/80817574
今日推荐