1.JVM发展重大事件
- 1990年,在Sun计算机公司中,由Patrick Naughton、MikeSheridan及James Gosling领导的小组Green Team,开发出的新的程序语言,命名为Oak,后期命名为Java
- 1995年,Sun正式发布Java和HotJava产品,Java首次公开亮相。
- 1996年1月23日Sun Microsystems发布了JDK 1.0。
- 1998年,JDK1.2版本发布。同时,Sun发布了JSP/Servlet、EJB规范,以及将Java分成了J2EE、J2SE和J2ME。这表明了Java开始向企业、桌面应用和移动设备应用3大领域挺进。
- 2000年,JDK1.3发布,Java HotSpot Virtual Machine正式发布,成为Java的默认虚拟机。
- 2002年,JDK1.4发布,古老的Classic虚拟机退出历史舞台。
- 2003年年底,Java平台的scala正式发布,同年Groovy也加入了Java阵营。
- 2004年,JDK1.5发布。同时JDK1.5改名为JavaSE5.0。
- 2006年,JDK6发布。同年,Java开源并建立了OpenJDK。顺理成章,Hotspot虚拟机也成为了OpenJDK中的默认虚拟机。
- 2007年,Java平台迎来了新伙伴Clojure。
- 2008年,oracle收购了BEA,得到了JRockit虚拟机。
- 2009年,Twitter宣布把后台大部分程序从Ruby迁移到Scala,这是Java平台的又一次大规模应用。
- 2010年,Oracle收购了Sun,获得Java商标和最真价值的HotSpot虚拟机。此时,Oracle拥有市场占用率最高的两款虚拟机HotSpot和JRockit,并计划在未来对它们进行整合:HotRockit。JCP组织管理Java语言
- 2011年,JDK7发布。在JDK1.7u4中,正式启用了新的垃圾回收器G1。
- 2017年,JDK9发布。将G1设置为默认GC,替代CMS
- 同年,IBM的J9开源,形成了现在的Open J9社区
- 2018年,Android的Java侵权案判决,Google赔偿Oracle计88亿美元
- 同年,Oracle宣告JavagE成为历史名词JDBC、JMS、Servlet赠予Eclipse基金会
- 同年,JDK11发布,LTS版本的JDK,发布革命性的ZGC,调整JDK授权许可
- 2019年,JDK12发布,加入RedHat领导开发的Shenandoah GC
2. 虚拟机
2.1 虚拟机的概念
- 系统虚拟机:对物理硬件的仿真。如Virtual Box,VMware
- 程序虚拟机:为单个程序设计。如Java虚拟机
2.2 JVM
- JVM是执行Java字节码的虚拟计算机。
- JVM平台的各种语言可以共享JVM带来的跨平台性、垃圾回收、即时编译器。
- Java技术的核心就是JVM
- 一次编译,到处运行。
- 自动内存管理
- 自动垃圾回收
JVM是运行在操作系统之上的,它与硬件没有直接的交互
3. JVM 结构
- HotSpot VM是目前市面上高性能虚拟机的代表作之一。
- 它采用解释器与即时编译器并存的架构。
- 在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步。
HotSpot VM是目前市面上高性能虚拟机的代表作之一。
2. 它采用解释器与即时编译器并存的架构。
3. 在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步。