JVM
2024-01-05 17:01:17 25 举报
AI智能生成
JVM(Java虚拟机)是Java技术的核心组成部分,它是一个虚拟的计算机系统,负责执行Java字节码。JVM的主要任务是管理内存、加载类文件、执行字节码指令以及与硬件进行交互。JVM提供了一个独立于操作系统和硬件的环境,使得Java程序可以在不同的平台上无缝运行。此外,JVM还具有垃圾回收机制,可以自动回收不再使用的内存,从而避免了内存泄漏等问题。总之,JVM是Java程序运行的基础,它为Java程序员提供了一个稳定、高效的运行环境。
作者其他创作
大纲/内容
类加载机制
装载
classLoader
Bootstrap ClassLoader
Extension ClassLoader
Application ClassLoader
Custom ClassLoader
双亲委派
链接
验证
准备
解析
初始化
运行时数据区
线程共享
堆内存
堆指向方法区
方法区
方法区指向堆
线程独有
本地方法栈
程序计数器
JAVA虚拟机栈
栈帧
局部变量表
栈引用指向堆
操作数栈
动态链接
方法返回
JVM内存模型
非堆
堆
Young区
Eden区
Survivor区
s0
s1
old区
java对象的内存布局
对象头
Mark Word
数组长度
Class Point
实例数据
对齐填充
垃圾回收
确定垃圾对象
可达性分析
什么样的对象是GC ROOT
类加载器
虚拟机栈中的本地变量表
staic成员
常量引用
本地方法栈的变量
引用计数法
垃圾回收算法
标记-清除
标记-整理
标记-复制
一分为二
垃圾回收器
serial垃圾收集器
parallel回收器
CMS回收器
初始标记
并发标记
重新标记
并发清除
G1垃圾回收器
初始标记
并发标记
最终标记
筛选回收
ZGC
JVM参数
标准参数
-version
-help
-server
非标准参数
-X
-Xms
初始化堆内存大小
-Xmx
最大堆内存大小
-Xmn
年轻代大小
-Xss
每个线程堆栈大小
-XX
Boolean类型
-XX:+UseG1GC
使用G1垃圾收集器
-XX:+UseConcMarkSweepGC
使用CMS垃圾收集器
-XX:+PrintGCDetails
打印GC日志
-XX:+HeapDumpOnOutOfMemoryError
发生内存溢出时
-XX:+HeapDumpPath=heap.hprof
内存溢出日志
非Boolean
-XX:MaxGCPauseMillis=500
设置G1最大的停顿时间
-XX:NewSize=20M
设置年轻的的大小
-XX:MaxNewSize=50M
设置年轻代最大的大小
-XX:OldSize=50M
设置老年代大小
-XX:MateSpaceSize=50M
设置方法区大小
-XX:MaxMetaSpaceSize=500M
设置方法区最大大小
调优
命令
jps
查看java进程信息
jinfo
查看java进程运行的jvm参数
jstate
查看jvm统计信息
jstack
查看线程状态信息
jmap
导出dump日志文件(hprof格式),可以通过MAT工具分析DUMP日志
工具
jconsole
jvisualvm
arthas
GCViewer
MAT
0 条评论
下一页