Back End

java-JVM相关内容

PineappleCat · 4月3日 · 2021年 254次已读

1.JVM概述

1.1 什么是虚拟机

虚拟机:模拟某种计算机体系结构,执行特定指令集的软件。

分为两大类:

  • 系统虚拟机( Virtual Box、VMware)
  • 程序虚拟机(JVM、.NET CLR、P-Code)

1.2 什么是Java 虚拟机

Java 语言虚拟机

  • 可以执行Java 语言的高级语言虚拟机。Java 语言虚拟机并不一定就可以称为JVM,譬如:Apache Harmony

Java™ 虚拟机

  • 必须通过Java TCK(Technology Compatibility Kit)的兼容性测试的Java语言虚拟机才能称为“Java™ 虚拟机”
  • Java™ 虚拟机并非一定要执行“Java”程序
  • 业界三大商用JVM:Oracle HotSpot 、Oracle JRockit VM、IBM J9 VM
  • 其他虚拟机:Google Dalvik VM、Microsoft JVM、TaoBao JVM等

1.3 Java虚拟机架构

  • Class Loader:类加载器
  • Runtime Data Area:运行时数据区
  • Execution Engine:执行引擎
  • Native Interface:本地接口

1.4 HotSpot 虚拟机

  • 最初由名为“Longview Technologies”的小公司开发,后被Sun 公司收购。最初并非面向Java 语言开发,而是面向Strongtalk 语言。
  • HotSpot 命名来自它的“热点代码探测”技术。
  • 从JDK 1.2 开始加入Sun(Oracle)JDK,在JDK 1.3 开始成为Sun(Oracle)JDK 的默认实现,在JDK1.4中成为唯一的虚拟机。
  • 在2006年底开始开源,由此建立的OpenJDK 项目。
  • 本课程中所有的虚拟机实现,指的都是Oracle HotSpot 虚拟机。

1.5 公有设计,私有实现

  • 前面所讲内存区域是在《Java 虚拟机规范》(JVMS)中定义的概念模型,但JVMS也同时声明这些概念不约束虚拟机的具体实现,只要求虚拟机实现的效果在外部看起来与规范描述一致即可。
    • 比如:堆内存在规范中规定是需要自动内存管理的,但是如何管理是具体虚拟机实现。
  • https://docs.oracle.com/javase/specs/index.html
    • Java语言规范和JVM规范

付费资源您未登录,请先

Click here to view the copyright notice of this site(点击此处查看本站版权声明)
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!