本系列文章均以笔记的形式进行记录,内容大部分来自《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)- 周志明》这本书。
Java技术体系包括了以下几个组成部分
- Java程序设计语言
- 各种硬件平台上的Java虚拟机实现
- Class文件格式
- Java类库API
- 来自商业机构和开源社区的第三方Java类库
我们通常把Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK。JDK是用于支持Java程序开发的最小环境。
把Java类库API中的Java SE API子集和Java虚拟机这两部分统称为JRE(JavaRuntime Environment),JRE是支持Java程序运行的标准环境。
Java技术体系可以分为以下四条主要的产品线
- Java Card:支持Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。
- ·Java ME(Micro Edition):支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了移动终端的针对性支持,Android并不属于Java ME。
- ·Java SE(Standard Edition):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API。
- Java EE(Enterprise Edition):支持使用多层架构的企业应用(如ERP、MIS、CRM应用)的Java平台,除了提供Java SE API外,还对其做了大量有针对性的扩充,并提供了相关的部署支持,在JDK 10以后被Oracle放弃,捐献给Eclipse基金会管理,此后被称为Jakarta EE。
java虚拟机
- 虚拟机始祖:Sun Classic/Exact VM
- 武林盟主:HotSpot VM(使用最广泛的Java虚拟机)
- 小家碧玉:Mobile/Embedded VM(面对移动和嵌入式市场)
- 天下第二:BEA JRockit/IBM J9 VM(被Oracle收购,现已不再继续发展)
- 软硬合璧:BEA Liquid VM/Azul VM(硬件平台绑定、软硬件配合工作的专有虚拟机,项目也已经停止了)
- 挑战者:Apache Harmony/Google Android Dalvik VM(在Android 5.0里ART就全面代替了Dalvik虚拟机)
- 没有成功,但并非失败:Microsoft JVM及其他