JVM 原理
2022-06-22 15:42:31 16 举报
JVM详细内部原理
作者其他创作
大纲/内容
伊甸园区(Eden)
子帧
Java类文件
类装载器(Class Loader SubSystem)
Native Method Area本地方法栈
养老区
父帧
PC Registers for Threas2
类加载子系统
Native Methods Library(本地方法库)
垃圾回收器
Java栈Stack
Thread 栈
Class:引用
栈
缓冲
对象D(0)
双亲委派机制
car3具体类属性
幸存0区
Execution Engine(执行引擎)
本地变量
Linking
伊甸园区(Eden Space)
Stack Frame
Initialization
幸存区 1区
探测器
老年代(Old)
新生区
Java
执行引擎(Excute Engine)
引用计数算法
car2具体类属性
1、程序开始,main入栈2、程序正在执行的方法,一定在栈顶3、栈,不存在垃圾回收问题4、程序结束,栈Over
preparation准备
输入输出藏
方法索引(Index)
目标代码生成器
应用程序加载器
新生区(伊甸园区)
Jvm调优99%就是在调堆
栈帧2
扩展类加载器
JVM
Thread n
对象实例
JVM结构
常量池
car2
Native
Car Class
JIT 编译器 (Just-in time 即时编译)
GC 垃圾回收
代码优化器
类加载器ClassLoader
Loading
堆区Heap Area
(委托父加载器加载类)
................
计数器本身也会有消耗,该方法不好!
Interpreter(解释器)
Thread1
即时编译器
幸存1区
堆Heap
方法区Method Area
本地方法栈Native Method Stack
StackArea(栈区)
Boot strap class loader
中间代码生成器
永久储存区
Class Files
也叫别名“非堆”,它就是堆有的把方法区也叫 “永久代”
计数0,对象删除
方法区
堆
本地方法接口
对象A(1)
getClassLoader
对象B(3)
car1
堆 Heap Space
(Perm)持久代/元空间(方法区、常量池)
Extention class loader
PC Registers for Threas1
verity验证
加载、初始化
永久区
幸存区 0区
Applacation class loader
引用计数法
本地栈
car3
Runtime Data Areas(运行时数据区)
本地方法库
栈帧1
程序计数器Process Count
重量级(重GC) Fullgc
类引用
resolution 解析
GC垃圾回收,主要是在伊甸园区和养老区假设内存满了,OOM,堆内存不够!OOM:OutOfMemoryError : Java heap space在JDK8以后:永久存储区改了个名字,叫“元空间”;(有微小的区别)
8大基本类型double
轻量级 (轻GC)
PC Register(PC寄存器)
启动类(根)加载器
car1具体类属性
运行时数据区(Runtime Data Area)
Class Loader SubSystem(类加载器子系统)
New 实例化
Native Method Interface(Java本地接口)JNI
getClass
对象C(5)
方法区Method
0 条评论
下一页