当我们的堆空间都放不下对象了,则会发生full GC,不过full GC会很慢,但是也是根据堆空间的大小来算回收时间的
调优1.如何定位死锁代码
产生死锁的原因
当一个线程在获取这把锁,另外一个线程在等待这把锁...0x00000006c1c4f0d0"这把锁,而Thread-12线程在等待这把锁,导致锁的嵌套了
注意:
死锁后程序还能够正常运行,因为死锁只是单个线程死锁了而已,
但是你重复执行死锁的那个方法就会导致整个线程池不可用...如何定位死锁
开发环境:
在开发的过程中,可以通过oracle的jdk,bin目录下的jvisualvm.exe查看是否死应用锁,且会发现有线程一直在休眠状态
?...如何查看大对象是谁,首先点到类按钮,然后点击大小,就可以看到这个对象占了整个堆的99.5%的内存
?
接着双击byte[]对象,就可以发现byte[]对象是被ArrayList的所引用的
?
?...s0: 新生代survivor space0简称 就是准备复制的那块 单位为%
s1:指新生代s1已使用百分比,为0的话说明没有存活对象到这边
e:新生代eden(伊甸园)区域(%)
o:老年代(