《java虚拟机》一:java技术体系

279 阅读2分钟

本系列文章均以笔记的形式进行记录,内容大部分来自《深入理解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及其他