深入理解JVM-张龙-P60-P73

JVM的内存划分,jdk7和jdk8是有区别的

先举个例子
在这里插入图片描述
JVM所管理的内存空间可划分为:
在这里插入图片描述
一个虚拟机栈归属于一个线程,是线程独有的内存空间。当线程消亡的时候,虚拟机栈也就消失了
程序计数器也是线程私有的
HotSpot虚拟机把本地方法栈和虚拟机栈合二为一了
堆内存中的对象会被Java所有的线程所共享
在这里插入图片描述
方法区存储的元信息包括常量、Class对象
直接内存不是JVM直接管理的内存
在这里插入图片描述
类加载完成的时候,就知道对象的大小了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
System.gc()
在这里插入图片描述
在这里插入图片描述
Jvisualvm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Jconsole
在这里插入图片描述
在这里插入图片描述
对static 方法加上synchronized关键字是对当前类的Class 对象进行加锁
在这里插入图片描述
Jvisualvm和Jconsole都可以监测死锁
在这里插入图片描述
在这里插入图片描述
元空间的默认大小是21M,如果不够用的话,会进行垃圾回收,它的上限是物理内存的大小
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可见一直在加载类
在这里插入图片描述
元空间的资料元空间与永久代
JDK8废弃了永久代,引入了元空间。
元空间的调优与工具
jmap
在这里插入图片描述
jmap -clstats 4093
在这里插入图片描述
jmap -heap 4619
在这里插入图片描述
MC:当前元空间的容量 MU:元空间的使用量
在这里插入图片描述
在这里插入图片描述
查找PID
在这里插入图片描述
上面方法不是很好看
下面使用jps
在这里插入图片描述
在这里插入图片描述
jcmd在列出java进程方面是可以和jps互换的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打印出操作手册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还有个图形化工具叫做jmc,jfr是java飞行记录器的简写
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
jhat 主要用来做堆转储的分析,还可以用OQL
jvisualvm也有OQL查询
在这里插入图片描述
回顾性总结

类型的加载、连接、初始化都是在程序运行期间完成的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值