深入理解java虚拟机--读书笔记

1.java技术体系

java Card:
  • 支持一些java小程序(Applets)运行在小内存设备(如智能卡)上的平台。
java ME(Micro Edition):
  • 支持java程序运行在移动终端(手机、PAD)上的平台,对java API有所精简,并加入了针对移动端的支持,这个版本以前称为J2ME
java SE(Standard Edition):
  • 支持面向桌面级应用(如Windows下的应用程序)的java平台,提供了完整的Java核心API,这个版本以前称为J2SE。
java EE(Enterprise Edition):
  • 支持使用多层架构的企业应用(如ERP、CRM应用)的java平台,除了提供java SE API外,还对其做了大量的扩充并提供了相关的部署支持,这个版本以前称为J2EE。

2.java发展史

java技术发展时间线
  • 1991年4月,James Gosling博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(机顶盒、冰箱、收音机)上运行的程序架构,这款产品就是java语言的前身:Oak(橡树)。

  • 1995年5月23日,Oak语言改名为java,并在SunWorld大会上正式发布java1.0版本,java语言首次提出了“Write Once, Run Anywhere的口号”。

  • 1996年1月23日,jdk1.0发布,标志着java拥有了第一个正式版本的运行环境,并提供了一个纯解释执行的java虚拟机(Sun Classic VM)。

  • 1996年5月底,Sun公司与旧金山举行了首届JavaOne大会。

  • 1997年2月19日,jdk1.1发布,jdk1.1包含了JDBC、JAR文件格式、JaveBean、RMI等技术,在语言上发展了内部类(Inner Class)、反射(Reflection)等技术。

  • 1998年12月4日 jdk1.2发布(代号Playground),在jdk1.2中sun将技术体系拆分为J2SE、J2EE、J2ME三个大块。jdk1.2中java虚拟机首次内置了JIT(Just In Time),1.2版本并存了Classic VM、HotSpot VM、Exact VM。语法上添加了strictfp关键字及Collection集合类。

  • 2000年5月8号,jdk1.3发布,jdk1.3改进了数学运算及Timer API等。jdk1.3后HopSpot成为Sun jdk默认虚拟机。

  • 2002年2月13号,jdk1.4发布,jdk1.4发布了如正则表达式、NIO、日志类等的技术特性,jdk1.4是java真正走向成熟的一个版本。

  • 2004年9月30号,jdk1.5发布,jdk1.5在java语法上做出了较大改进,新添加了如自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环)等特性。jdk1.5改进了java内存模型JMM,并提供了concurrent并发包。

  • 2006年12月11号,jdk1.6发布,并启用了Jave SE6、Java EE6、JavaME6命名方式。jdk改进包含了动态语言支持、编译API等。jdk1.6对虚拟机锁同步、垃圾收集、类加载等进行了优化。

  • 2009年2月19号,jdk1.7发布,改进包含:新的GI收集器、加强对非java语言的调用支持、升级类加载架构等。

  • 2014年3月18号,jdk1.8发布,改进包含:Lambda 表达式、函数式接口、方法与构造函数引用、Predicate接口、Function 接口等。java虚拟机的改进包含:减少指定字段上的缓存争用、移除Permanent Generation(永久代)、移除一些很少使用的垃圾回收器组合、提供更多的验证错误信息、减少类元数据所占内存、支持创建小型虚拟机(3M以下)、添加3个内存有序化的内建函数(fence intrinsics)

  • 2016年9月,jdk1.9发布,改进包含:java平台级模块系统、Linking、JShell : 交互式 Java REPL、HTTP/2、多版本兼容jar等。

3.java虚拟机发展历史

  • Sun Classic /Exact VM
  • Sun HotSpot VM
  • Sun Moblie-Embedded VM / Meta-Circular VM
  • BEA JRockit /IBM J9 VM
  • Azul VM /BEA Liquid VM
  • Apache Harmony /Google Android Dalvik VM
  • Microsoft JVM及其他

你可能感兴趣的:(深入理解java虚拟机--读书笔记)