《深入理解JAVA虚拟机》周志明 第三版 - 第一章 走近JAVA

1、java优点

一次编写、到处运行;相对安全的内存管理和访问机智;热点代码检索和运行时编译以及调优;完善的API,多样的第三方类库。

2、java体系【广义】

在这里插入图片描述

3、Java发展史


发展时间线图如下:
在这里插入图片描述

4、虚拟机家族

(1)始祖-1996年:Sun Classic/Exact VM 慢

只能使用纯解释型方式来执行代码,使用即时编译器需要外挂,使用了外挂解释器就不能工作。

(2)武林盟主-1997年:HotSpot VM

目前使用范围最广,使用热点代码探测技术使得即时编译压力减小。

(3)小家碧玉:Mobile/Embedded VM

面对移动和嵌入式市场,使用较少,前途不乐观,多用在功能机上。

(4)天下第二:BEA JRockit/IBM J9 VM

JRockit不包含解释器,全部代码即时编译,被Oracle收购,已不再发展。
J9在设计上全面考虑服务端、桌面应用、嵌入式的多用途虚拟机,依然十分活跃;在职责分离与模块化上比hot spot优秀,2016年开源后捐献给了Eclipse基金会管理。

(5)软硬合璧:BEA Liquid VM/Azul VM

与特定硬件平台绑定或配合工作的专用虚拟机,或提供特殊的功能特性。

Liquid VM是BEA公司开发的运行在Hypervisor系统上的JRockit虚拟机的版本,不需要操作系统的支持,或者说它自身实现了一个专用操作系统的必要功能,此项目目前已停止。

Azul VM是运行在Azul公司专有硬件系统Vega上的java虚拟机,很优秀,目前已停止。

Zing虚拟机是从HotSPot基础上独立开发出的高性能虚拟机,可运行在Linux/X86-64平台上。

(6)挑战者:Apache Harmony/Google Android Dalvik VM

只能称作虚拟机,而不是java虚拟机;Apache Harmony兼容JDK5,JDK6,未通过TCK认证。

Dalvik VM未遵循《Java虚拟机规范》,使用寄存器架构,在Android5.0中被ART取代。

(7)没有成功,但并非失败:Microsoft JVM及其他

1997年微软因为被Sun公司告侵权而要求终止其虚拟机发展,三年后又希望微软不要这么做。(这波操作属实令人无语)

(8)百家争鸣

KVM:强调简单、轻量、高度可移植,但运行速度较慢

Java Card VM:精简,支持绝大多数常用加密算法,放入智能卡,SIM卡,银行卡等

Squawk JM:嵌入式虚拟机实现,

JavaInJava:实验室性质的虚拟机,用java语言实现java本身的运行环境,只能运行在另一个宿主虚拟机上

Maxin VM:几乎以Java代码实现的元循环虚拟机,有先进的即时编译器和垃圾收集器,是未来代替HotSpot中服务器端编译器的希望

以及其他很多的虚拟机…………

5、展望未来

(1)无语言倾向:

java最大的优势在于庞大的用户群和及其成熟的软件生态。Graavl VM是跨语言全栈虚拟机,可作为“任何语言”的平台上使用,是真正意义上和物理计算机相对应的高级语言虚拟机,对输入中间自动优化,运行时即时编译优化,优秀的执行效率,发展潜力令人期待。

(2)新一代即时编译器

HotSpot中含有编译耗时端但输出代码优化低的客户端编译器(C1)、编译耗时长但输出代码质量更高的客户端2(C2),通常会在分层编译机制下和解释器相互配合来共同构成执行子系统。JDK10中加入了一个全新的即时编译器:Graal编译器,它作为java虚拟机执行代码的最新引擎,同时为HotSpot和Graal VM注入了更强的驱动力。

(3)向native迈进

小型微服务化,Substrate Vm的出现让Java逐步开始对提前编译提供支持,包括了独立,能异常处理,同步调度,进程管理,内存管理,和JNI访问等组件,显著的降低内存和启动时间。

(4)灵活的胖子

HotSpot经过不断的更新,一系列的重构和开放,虽然代码复杂度、体积仍在变大,但其架构未老朽、而是拥有了越来越多的开放性和扩展性。

(5)语言语法持续加强

新版本的Java中越来越出现其他语言中的优秀特性。

接下来呢就是可以自己实战JDK了,OpenJDK地址:https://openjdk.java.net/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值