《深入理解Java虚拟机》读书笔记(一)

技术帖,Java Virtual Machine 2017-03-01

第一部分走近Java
第一章 走近Java

简述

  • 主流JVM
  • Java技术未来
    • 模块化
    • 混合语言
    • 多核并行
    • 进一步丰富的语法
    • 64位虚拟机
  • Java优点:

一次编写,到处运行
安全的内存管理和访问机制
热点代码检测和运行时编译及优化
完善的应用程序接口
无数的第三方类库等

  • 广义上讲,能够运行于Java虚拟机上的语言及相关程序都属于Java技术体系。

传统意义上讲,Sun定义的Java技术体系包括:

Java程序设计语言

各种硬件平台上的Java虚拟机

Class文件格式

Java API类库

来自商业机构和开源社区的第三方Java类库

JDK是支持Java开发的最小环境,包括Java程序设计语言,Java虚拟机和Java API类库三部分

JRE是支持Java运行的标准环境,包括Java API中Java SE API和Java虚拟机

下图为Java技术体系所包含的内容

###1074438-20161207185534085-1366910607.png

Java技术体系

- 主流JVM

Sun HotSpot VM
BEA JRocket VM
IBM J9 VM

- Java技术未来

- 模块化

Java SE动态组件支持(Dynamic Component Support for Java SE),即OSGI
OpenJDK的Jigsaw子项目推动Java模块化
- 混合语言

虚拟机不和包括Java在内的任何语言绑定,它只与Class文件关联。因此只要符合Java虚拟机规范,任何一门语言编译出的Class文件都是可以被接受的。

目前在JVM上运行的脚本语言Top5:Groovy,JRuby,Scala,Fantom,Jython

- 多核并行

JDK1.5引入的java.util.concurrent包实现了粗粒度的并发框架,JDK1.7加入的java.util.concurrent.forkjoin对这一框架进行了重要扩充。

OpenJDK子项目Sumatra利用GPU和APU运算能力,提供Java语言层面的API支持

Hadoop, Scala, Clojure等

- 进一步丰富的语法

自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环等语法
OpenJDK子项目Coin用来收集处理Java语法细节修改

- 64位虚拟机

64位虚拟机相对于32位存在指针膨胀和各种数据类型对齐问题,多消耗额外10%-30%的内存。JDK 1.6提供了-XX:+UserCompressedOops用于普通对象指针压缩。但是毫无疑问,主流虚拟机终将会发展至64位。


本文由 BF 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论

bst g22 jinniu lilai opebet orange88 vinbet xbet yuebo zunlong shijiebei bet007 hg0088 ju111 letiantang m88 mayaba qg777 qianyiguoji sbf777 tengbohui tlc ule weilianxier waiweitouzhu xingfayule xinhaotiandi yinheyule youfayule zhongying 2018shijiebei w88 18luck 188bet beplay manbet 12bet 95zz shenbo weide1946 ca88 88bifa aomenxinpujing betway bodog bt365 bwin tongbao vwin weinisiren 88jt fenghuangyule hongyunguoji 918botiantang huanyayule jianada28 jixiangfang libo long8 hongzuyishi zuqiutouzhu