onlyliuxin / coding2017

218 stars 643 forks source link

谈一谈你对于Java内存泄漏的理解,举例说明~ #508

Open kailuncen opened 7 years ago

yangyangxu2016 commented 7 years ago
  1. Java虚拟机: Java堆 虚拟机栈 Java方法区 本地方法栈 程序计数器
  2. 内存泄漏:GCRoot可达,而又没有使用(占着茅坑不拉屎);
    1. 一个长生命周期对象持有短生命周期的引用;
      1. 内存泄漏一定会导致内存溢出吗?(有可能)
  3. 内存溢出:请求内存时没有可分配的内存(没有茅坑拉屎了)

`

public class MemoryLeak { //长生命周期 private static List list = new ArrayList();

public static void main(String[] args) {
    while (true) {
        Object o = new Object(); //短声明周期
        list.add(o);
    }
}

} `