Java虚拟机JVM详解

Posted lingluo2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java虚拟机JVM详解相关的知识,希望对你有一定的参考价值。

一.JVM内存管理

1.1JVM运行时数据区

1.1.1程序计数器:记录当前线程正在执行的字节码指定的地址(行号)

为什么需要它:程序容易被打断

1.1.2虚拟机栈:存储当前线程运行方法时所需要的数据、指令、返回地址

1.1.3本地方法栈:和虚拟机栈类似,存储的是native方法

1.1.4方法区:类信息、常量(1.7移至堆)、静态变量、JIT(编译好的代码等数据 1.7移至堆)

1.1.5堆:存放所有实例对象和数组

设置:启动时分配的内存:-Xms,最大内存 -Xmx

技术分享图片

 

1.2JVM内存模型

技术分享图片

技术分享图片

 

1.3JVM垃圾回收(GC)

技术分享图片

判断对象是否存活

技术分享图片

内存泄漏:对象没有被回收 例:对象出栈时没有置空

内存溢出:内存不够了

1.4JDK提供的工具

jps 虚拟机进程状况

jstat 虚拟机统计信息监控工具

jmap Java内存映像区域

jstack Java堆栈跟踪工具

jconsole Java监视与管理控制台

 

以上是关于Java虚拟机JVM详解的主要内容,如果未能解决你的问题,请参考以下文章

JVM内幕:Java虚拟机详解

Java中JVM虚拟机详解

JVM虚拟机详解JVM与JAVA体系统结构

JVM虚拟机详解JVM与JAVA体系统结构

JVM虚拟机详解JVM与JAVA体系统结构

JVM虚拟机详解