JVM
2016-08-04 20:04:00 0 举报
Java虚拟机(JVM)是Java技术的核心和基础。它是一个虚拟的计算机,具有硬件级别的处理能力,可以执行Java字节码。JVM在执行Java程序时,将Java字节码翻译成底层机器指令,从而实现了Java程序的跨平台性。JVM还负责内存管理、垃圾回收和运行时环境的配置等功能。JVM的架构包括类加载器、运行时数据区、执行引擎等组件,它们共同协作,使得Java程序能够在各种操作系统和硬件平台上高效运行。JVM的性能调优和故障排查是Java开发中的重要技能,对于提高Java应用的稳定性和性能至关重要。
作者其他创作
大纲/内容
Eden(365M)
✔️
ParNew垃圾回收器新生代
S0
S1
2
JVM
用户线程
垃圾回收线程
Demo.java
堆
初始标记
X
完成Minor GC恢复应用线程
创建对象
(1KB)X
栈帧main()
math
程序计数器
启动类加载器
类加载子系统
Minor GC
对象
栈
解析
标记 - 整理
重新标记
老年代( 1G )
自定义类加载器
S0(1/10)
动态链接
编译
Eden
Suvivor区
标记与根节点直接关联的引用对象暂停用户线程
main线程
类加载
Eden区满执行Monitor GC暂停用户线程
准备
Eden(8/10)
本地方法栈
新生代(1/3)
DirectByteBuffer
.java文件
S0( 70M )
并发清除
类加载器
对并发标记期间新增加的引用关系变化再次标记暂停用户线程
初始化
元空间(Metaspace)
局部变量表
磁盘
Cleaner
堆外内存
复制
标记 - 清理
hello()方法栈帧局部变量 text
From(1/10)
Java -jar 运行
CMS垃圾回收器老年代
吞吐量 =
老年代(2/3)
JVM虚拟机
方法区(元空间)常量、类元信息、静态变量
栈帧compute()
应用程序类加载器
Serial垃圾回收器新生代
运行用户代码时间
运行数据区(内存模型)
并发标记标记其他引用对象用户线程并发执行
本地方法区
To(1/10)
元空间
Demo类信息main方法
新生代
验证
堆外内存(直接内存)
Full GC
Demo.class字节码文件
直接内存
b
年轻代(1/3)
S1( 70M
执行main方法
运行用户代码时间 + 垃圾回收时间
打包
操作数栈
b=2
1
字节码执行引擎
Java系统
修改计数器值
a=1
S1(1/10)
javac编译
Demo.classmain()
.class字节码文件
Jar包Demo.class
栈(线程私有)
程序出口
Demo.java源代码
扩展类加载器
方法区(永久代)
math.class
a
main()栈帧局部变量message
0 条评论
下一页