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