《深入理解JAVA虚拟机(第2版)》—— 学习笔记1
主要摘录了本书第一章的关键(我个人比较关心的:>)内容。
1、Java 技术体系
我们可以通过两个维度来进行分类:
1.1、根据各个组成部分的功能来划分
主要分为 JDK 和 JRE。
- JDK
Java 程序 开发 的最小环境。Ta 由 「Java 程序设计语言」、「Java 虚拟机」、**「Java API 类库」**组成。 - JRE
Java 程序 运行 的标准环境。Ta 由 「Java 虚拟机」、**「Java API 类库中的Java SE API 子集」**组成。
下图为 Java 技术体系的包含的内容(图片来自:https://docs.oracle.com/javase/7/docs/)
1.2、根据服务的领域来划分(4个平台)
- Java Card
支持一些 Java 小程序(Applets)运行在小内存设备(如:存储卡)上的平台。 - Java ME(J2ME)
支持 Java 程序运行在移动设备平台,对 Java API 有所精简,并加入了针对移动端的支持。 - Java SE(J2SE)
面向桌面级应用的 Java 平台,提供了完成 Java 核心 API。 - Java EE(J2EE)
支持使用多层架构的企业应用(如:ERP、CRM应用)的 Java 平台,除了提供 Java SE API 以外,还做了大量的 扩充 并提供相应的部署支持。
在 JavaEE(J2EE)中所谓的对 Java SE API 以外的扩充,一般是以 javax.* 作为包名。JavaSE API 的核心包一般以 java.* 作为包名,但是,由于一些历史原因,这个核心包里也会有一些 javax.* 的包名。
2、OpenJDK 和 Sun/OracleJDK
- OpenJDK 是 Sun 在 2006 年末将 Java 开源而形成的项目(SunJDK的开源版)
- Sun/OracleJDK 采用了商用实现,存在一些 OpenJDK 没有的,商业闭源的功能。
- Sun/OracleJDK 和 OpenJDK 中所带的虚拟机都是 HotSpot VM