摘要:
一、不断增加对象触发GC的代码 VM 参数:-Xms100m -Xmx100m -XX:+UseSerialGC 效果图: 二、线程检测 代码: jconsole的图: 三、死锁代码 二、VisualVM VisualVM安装插件报错 https://blog.csdn.net/xionglangs 阅读全文
摘要:
一、JPS(虚拟机进程监控工具) 二、jstat:虚拟机统计信息监视工具 例子:jstat -gcutil 16478 s0:区域占比2.33%; s1占比0.00%; E:伊甸园区 ; O:老年区; M+CSS不懂; YGC=young gc = mino gc; YGCT = YGC的总耗时; 阅读全文
摘要:
4种引用 1、强引用在一般的Java 程序中,见到最多的就是强引用(strong reference)。如Date date = newDate(),date 就是一个对象的强引用。 2、软引用(内存不足的时候才会回收)软引用(soft reference)在强度上弱于强引用,通过类SoftRefe 阅读全文
摘要:
1。加载2。链接(检验/准备/解析) 1/检验过程:检验class的数据格式。2/准备过程:创建静态域,并将这些域设为默认值。3/解析过程:在一个Java类中会包含对其它。类或接口的形式引用,包括它的父类、所实现的接口、方法的形式参数和返回值的Java类等。解析的过程就是确保这些被引用的类能被正确的 阅读全文
摘要:
1、解决哪些内存需要回收;2、什么时候回收;3、如何回收;如果一个对象是gc.root不可达,先判断他的finalize方法有没有被重写,没有重写直接回收,如果重写,则放在一个叫F-QUEUE的队列用,由一个线程去执行对象的finalize方法,执行完finalize方法后,回收的时候会再次判断是否 阅读全文
摘要:
JMM(内存模型) 1、’主内存+每个线程有自己的内存 JVM运行时数据区 包含:1、程序计算器(每个线程自带);2、JAVA-STACK(每个线程自带);3、本地方法stack;4、堆;5、方法区; 1、程序计算器(每个线程自带) 2、JAVA-STACK(每个线程自带)1:局部变量表2:操作数栈 阅读全文