一、Java技术体系
按照组成JDK包含:Java程序设计语言、Java虚拟机、Java类库。
按照技术服务领域划分:
1)Java Card:支持Java小程序(Applets)运行在小内存设备。
2) Java ME:支持Java程序运行在移动端。但是使用Java语言开发程序的Android不属于Java ME。
3)Java EE:支持使用多层 架构的企业应用的Java平台。如 CRM、ERP、MIS。18年被Oracle扫地出门,赠送给了Eclipse基金会,现在叫Jakarta EE。
二、JDK发展历史
2017年9月Java 9 后每年3月和9月一个大版本。
目前Oracle负责对Java版本更新,一年两次,一次同时发行两个JDK,一个GPLv2+CE协议下的OpenJDK,一个在新的OTN协议下的传统OracleJDK。前者随便用,但是只有半年更新支持。后者,可以免费用,但是商用收费,3年更新支持。
Java虚拟机发展史
Sun Classic虚拟机:Sun公司开发的第一台。
Exact VM 虚拟机:Sun公司第二台,用准确内存管理。短暂使用就被HotSpotVM取代。
HotSpot虚拟机:Sun从一个小公司收购的。编译器和解释器协调工作,2006年被开源。
目前最流量的jvm。2014年除掉永久代,吸收了Jrockit的Java Mission Control监控工具。
CDC-HI虚拟机:Java ME运行的虚拟机,目前在传音手机、智能控制器、传感器等领域还在使用。
Jrockit虚拟机:2002年BEA公司收购的。不含解释器,即时编译后执行,专注服务端应用。被Oracle收购后,不再继续发展,版本停止在R28,是JDK6版Jrockit的代号。
J9虚拟机:IBM公司虚拟机,2016年开源后捐给了Eclipse OMR。职责 分离和模块二化作的更好。
以上是运行在通用硬件上的,还有一类与特定硬件平台绑定、软硬件配合工作的专有虚拟机性能更高:BEA Liquid VM 和Azul VM。
Apache Harmony:Apache软件基金会旗下兼容jdk5和jdk6的Java运行平台。有自己的Java类库和API。
Dalvik虚拟机:Android平台4.4时代之前的虚拟机,没有遵循Java虚拟机规范,不直接执行Class文件,执行DEX文件,使用的是寄存器架构。即时编译。Android5.0后用ART提前编译虚拟机。