JVM相关知识

一、什么是JVM?

定义:Java Vitual Machine-java程序的运行换环境(二进制)

好处:

  1. 一次编写,到处运行的基石。

  2. 自动内存管理,垃圾回收功能。(针对c/c++没有,减负)。

  3. 数组下标越界越界检查,(c没有,需要自己写,如果没有则越界可能覆盖其他代码。)

  4. 多态(虚方法表的方式)

  5. 比较:JVM+基础类库 = JRE

    JRE+编译工具 = JDK

二、常见的JVM

其中具有代表性的三款:

1、虚拟机始祖Sun Classic/Exact VM

Sun Classic 是java世界的第一款商用虚拟机,以今天的视角看来,Sun Classic虚拟机的技术已经相当原始,这款虚拟机最初的使命也早已终结。这款虚拟机只能使用纯解释器的方式来执行,这也意味着如果你需要在开发时使用及时编译的功能,你就必须外挂即时编译器。

Exact VM 的命名由来是因为它使用了准确式内存管理(Exact Memory Management),准确式内存管理是指虚拟机可以知道内存中某个位置的数据具体是什么类型。

2、武林盟主,默认虚拟机HostSpot VM

相信所有java程序员都听说过HotSpot虚拟机,它是Sun/OracleJDK和OpenJDK中的默认java虚拟机,也是目前使用最广泛的虚拟机,HotSpot既继承了Sun之前两款虚拟机的优点,也有很多自己的技术优势,比如它名称中的HotSpot就是指它的热点探测技术。HotSpot虚拟机的热点探测能力可以通过执行计数器找出最具有编译价值的代码,然后通知即时编译器以方法为单位进行编译。

3、商用虚拟及 --Zing

Zing是一个兼容并符合Java SE规范的JVM。Zing针对Linux和x86进行了优化。Zing专为需要大内存,高事务率,一致响应时间或高持续吞吐量的任意组合的企业应用程序和工作负载而设计,是唯一能够提供与堆大小无关的可预测响应时间的JVM。

三、JVM内存结构

内存结构

类放在方法区 ,实例对象在中,

调用方法时使用虚拟机栈程序计数器本地方法栈

代码执行:

每行代码由执行引擎 中的解释器 逐行执行,热点代码由即时编译器 执行(优化执行),GC垃圾回收 对堆中不在引用的进行垃圾回收。 部分行为需要借助本地方法接口,使用本地操作系统辅助执行。

相关推荐
我不想当小卡拉米17 小时前
C++:继承+菱形虚拟继承的一箭双雕
开发语言·jvm·c++
时光呢18 小时前
JAVA常见的 JVM 参数及其典型默认值
java·开发语言·jvm
我命由我123451 天前
Spring Boot 自定义日志打印(日志级别、logback-spring.xml 文件、自定义日志打印解读)
java·开发语言·jvm·spring boot·spring·java-ee·logback
xyliiiiiL1 天前
ZGC初步了解
java·jvm·算法
心灵Haven1 天前
JVM介绍
jvm
小样vvv1 天前
【面试篇】JVM
jvm·面试·职场和发展
兢兢业业的小白鼠1 天前
Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器
java·开发语言·jvm·tomcat
程序猿chen2 天前
《JVM考古现场(十五):熵火燎原——从量子递归到热寂晶壁的代码涅槃》
java·jvm·git·后端·java-ee·区块链·量子计算
Song2 天前
JVM 学习计划表(2025 版)
jvm·学习
皮卡兔子屋2 天前
java虚拟机---JVM
java·jvm