Java虚拟机需知:JVM的运行机制 你的名字 2021-03-12 14:41 540阅读 0赞 ##### JVM的启动流程: ##### 1. 通过java+XXX或(javaw)命令启动java虚拟机; 2. 装载配置,会在当前的路径中寻找 JVM 的 config 配置文件; 3. 根据配置查找 jvm.dll 文件,这个文件就是 Java 虚拟机的主要实现; 4. 使用dll,初始化jvm,获得相关的接口; 5. 找到 main 方法执行; ##### JVM的基本结构: ##### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ2NDk2NA_size_16_color_FFFFFF_t_70] **PC寄存器:** 1. pc寄存器是线程私有的,在线程创建时创建; 2. 执行非native方法时,pc寄存器的值是当前需要执行指令的地址;执行native方法时,pc寄存器的值是undefined; 3. pc寄存器不会发生内存溢出,因为其存储的数据和所占空间大小不会随程序的执行而发生改变。 **方法区:** 1. 线程共享; 2. 保存已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据; 3. 在JVM规范中,没有强制要求方法区必须实现垃圾回收。很多人习惯将方法区称为“永久代”,是因为HotSpot虚拟机以永久代来实现方法区,从而JVM的垃圾收集器可以像管理堆区一样管理这部分区域,从而不需要专门为这部分设计垃圾回收机制。不过自从JDK7之后,Hotspot虚拟机便将运行时常量池从永久代移除了。 **方法堆:** 1. 所有线程都共享java堆; 2. 存储new出来的对象,以及数据(引用存放在Java栈中); 3. 垃圾回收器管理的主要区域; **Java栈:** 1. 线程私有; 2. 每一次方法调用都会创建一个新的栈帧,并压栈;当方法执行完毕之后,便会将栈帧出栈。由此可知,线程当前执行的方法所对应的栈帧必定位于Java栈的顶部,以及使用递归方法的时候容易导致栈内存溢出的现象; 3. 对于小对象(一般几十个bytes),在没有逃逸的情况下,可以直接分配在栈上(直接分配在栈上,可以自动回收,减轻GC压力);大对象或者逃逸对象无法栈上分配; [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzQ2NDk2NA_size_16_color_FFFFFF_t_70]: /images/1615560095188.png
相关 深入理解Java虚拟机(JVM):内存结构与运行机制示例 Java虚拟机(JVM)是运行Java代码的平台。它对硬件资源进行了抽象,使得开发者可以专注于编写应用逻辑,而不必关心底层环境。 下面我们将重点介绍JVM的内存结构以及运行机 亦凉/ 2024年09月12日 02:51/ 0 赞/ 12 阅读
相关 理解Java虚拟机JVM的内存管理机制 Java虚拟机(Java Virtual Machine,简称JVM)是运行Java程序的核心平台。在JVM的内存管理机制中,主要包括以下几个部分: 1. **堆(Heap) 电玩女神/ 2024年09月10日 14:30/ 0 赞/ 26 阅读
相关 Java虚拟机(JVM)运行时错误剖析 Java虚拟机(JVM)在运行程序时,如果遇到无法正常处理的情况,就会抛出运行时错误。这些错误通常包括: 1. **ClassNotFound**:表示尝试加载的类不存在。 落日映苍穹つ/ 2024年09月05日 19:42/ 0 赞/ 17 阅读
相关 JVM_java虚拟机之类加载机制 1 什么是类的加载? 类的加载: 指的是将类的.class文件中的二进制数据读入到内存中,并转换成`java.lang.Class`类的一个实例. .class文件: 柔情只为你懂/ 2022年12月09日 02:31/ 0 赞/ 154 阅读
相关 java虚拟机运行机制 jvm 是java 代码编译成.class文件 运行的环境 ,其结构图如下 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_s 深藏阁楼爱情的钟/ 2022年10月05日 08:57/ 0 赞/ 168 阅读
相关 JVM虚拟机---JVM锁机制 1.线程安全 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的 ╰+哭是因爲堅強的太久メ/ 2022年05月14日 00:44/ 0 赞/ 194 阅读
相关 java虚拟机运行机制 最近出去面试,总被问到Java JVM相关的东西,什么JVM的内存模型、JVM的内存分配、内存回收、内存回收算法…搞得我一头雾水,早些年还看过一些,蹭着有时间给大家也给自己总结 超、凢脫俗/ 2022年04月24日 03:04/ 0 赞/ 230 阅读
相关 Java虚拟机需知:JVM的运行机制 JVM的启动流程: 1. 通过java+XXX或(javaw)命令启动java虚拟机; 2. 装载配置,会在当前的路径中寻找 JVM 的 config 配置文件;... 你的名字/ 2021年03月12日 14:41/ 0 赞/ 541 阅读
还没有评论,来说两句吧...