一,JVM
1,JVM区域划分
类装载器,运行时数据区,字节码执行引擎
2,JVM内存模型(运行时数据区)
由本地方法栈,虚拟机栈,堆,方法区,和程序计数器组成。本地方法栈为本地方法服务的栈,有native的方法,就是一些C语言的方法。堆区:用于存放程序中产生的对象,GC的主要区域。方法区:用于存放类的信息,静态变量,常量等。程序计数器:记录程序当前执行的位置。
3,线程和堆栈的关系。
虚拟机栈,本地方法栈和程序计数器是线程私有的,而堆和方法区是线程共享的
4,虚拟机栈
由一个个栈帧组成,每一个方法都有自己的栈帧,栈帧分为4各区域:
局部变量表:用来存放方法中的局部变量和方法参数。
操作数栈:计算过程中的临时存储区,保存计算结果
动态链接:
方法出口:保存方法返回地址,一个方法被调用结束时,需要返回它被调用的地方。
5,堆
分为:年轻代和老年代 年轻代:老年代=1:2,年轻代分为 eden区,survivor区:from,to。比例为8ÿ
JVM详解
于 2023-02-16 10:09:51 首次发布
本文详细解析了JVM的区域划分,包括类装载器、运行时数据区和字节码执行引擎。重点阐述了JVM内存模型,如虚拟机栈、本地方法栈、堆和方法区,并探讨了线程与堆栈的关系。同时,介绍了对象在堆中的分配、垃圾回收的过程及算法,如引用计数法和可达性分析法,以及各种垃圾收集器的工作原理。文章还涉及了Minor GC和Full GC的触发条件,以及老年代空间担保机制。
摘要由CSDN通过智能技术生成