码迷,mamicode.com
首页 > 编程语言 > 详细

Java虚拟机JVM详解

时间:2019-01-06 15:36:48      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:垃圾回收   信息   运行时数据区   字节   回收   指定   设置   img   跟踪   

一.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详解

标签:垃圾回收   信息   运行时数据区   字节   回收   指定   设置   img   跟踪   

原文地址:https://www.cnblogs.com/lingluo2017/p/10228909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!