重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)

第一部分:走近Java

第1章:走近Java

1.1 Java的技术体系

SUN 官方所定义的 Java 技术体系包括:Java程序设计语言、Java虚拟机、Class文件格式、Java API类库、第三方(商业机构和开源社区)Java类库。

其中,「Java程序设计语言」、「Java虚拟机」、「Java API类」这三个被称为 JDK(Java Deployment Kit),即 Java 程序开发的最小环境。

而 JRE(Java Runtime Environment),即 Java 程序运行的标准环境,则包括:Java虚拟机和JavaAPI类库中的Java SE API子集。

按着 Java 重点关注的业务领域来划分,Java技术体系可以分为 4 个平台:

  • Java Card
    支持一些Java小程序运行在小内存设备上的平台,例如:智能卡。
  • Java ME(Micro Edition)
    支持 Java 程序运行在移动终端上的平台,例如:手机、PAD。对J avaAPI 有所精简,并加入了对移动终端的支持,也就是以前称之为 J2ME 的版本。
  • Java SE(Standard Edition)
    支持面向桌面应用的 Java 平台,例如:Windows下的应用程序,提供了完整的 Java 核心 API,也就是以前称之为 J2EE 的版本
  • Java EE(Enterprise Edition)
    支持使用多层架构的企业应用的Java平台,例如:ERP、CRM应用。除了提供Java SE以外,还对其进行了大量的扩充并提供了相应的部署支持。也就是以前称之为J2EE的版本。
1.2 虚拟机的发展史
  • Classic VM
    JDK 1.0 时期,所带的虚拟机为 Classic VM,该虚拟机只能使用纯解释器的方式来运行 Java 代码,如果要使用 JIT 编译器,只能通过外挂的方式。但是编译器和解释器无法配合工作,也就意味着如果使用 JIT 编译器来运行 Java 代码,编译器则会将每一行代码和每一个方法都进行编译,无论它们是否存在被编译的价值。
  • Exact VM
    JDK 1.2 时期,SUN 的虚拟机团队曾在 Solaris 平台上开发了 Exact VM,该虚拟机的执行系统已经具备了现代高性能虚拟机的雏形:如两级即时编译器,编译器和解释器混合工作模式等。该虚拟机为准确式内存管理,这也是该虚拟机名字的由来,虚拟机可以知道内存中某个位置上的数据的类型。
  • HotSpot VM
    该虚拟机是 SUN JDK 和 Open JDK 所带的虚拟机。HotSpot 一开始就是准确式GC(与Exact VM一致),具备热点代码探测能力(这一点Exact VM也具备)。该虚拟机的热点代码探测能力是通过程序计数器找出具有编译价值的代码,然后通知 JIT 编译器以方法为单位进行编译。

你可能感兴趣的:(JVM,Java,java,jvm)