内存泄漏的原理

1.什么是内存泄漏?
内存泄漏和内存溢出区别
内存溢出:是人为造成的。很难发现的
内存溢出:满了就溢出、内存不足了就溢出
2.垃圾回收机制
自动进行垃圾回收—如何判断一个对象是属于垃圾对象
去餐馆:食堂吃饭。
阿姨如何判断餐盘是可以回收的?

计数算法 b = new Object(); +1 +1 -1 -1 a = b; a = null; b = null;

【内存泄漏的原理】是这样计算的 只要new一次就是+1 而等于null一次就是-1
计数–应用奔溃定位法
某对象不再持有任何的引用的时候才会回收
反过来,如果某对象呗持有引用了,就不会呗回收了吗?
回答:软引用,虚弱:两个不可达对象(互相)持有引用的时候
内存泄漏的原理
文章图片

可以作为GC ROOT引用点的是:
JavaStack中引用的对象:
方法区中静态引用指向的对象;
方法区中常量引用指向的对象;
Native发放去中JNI引用的对象;
存活的线程Thread;
内存泄漏的原理
文章图片

    推荐阅读