一般来说,内存泄漏有两种情况,一种情况如在C/C++语言中的,在堆中分配的内存在没有将其释放掉的时候,就将其全部能訪问这块内存的方式都删除掉(如,指针又一次赋值)。这样的情况就像,占着地儿,别人还没办法引用,又没释放空间,内存泄漏。
还有一种情况是。在内存对象明明已经不须要的时候。还仍然保留着这块内存和它的引用。
第一种情况,在java中已经因为GC的存在。得到了非常好的解决。
所以java中的内存泄漏主要指的是另外一种。
表现为:一个内存对象的生命周期超出了程序须要它的时间长度。
一般来说,内存泄漏有两种情况,一种情况如在C/C++语言中的,在堆中分配的内存在没有将其释放掉的时候,就将其全部能訪问这块内存的方式都删除掉(如,指针又一次赋值)。这样的情况就像,占着地儿,别人还没办法引用,又没释放空间,内存泄漏。
还有一种情况是。在内存对象明明已经不须要的时候。还仍然保留着这块内存和它的引用。
第一种情况,在java中已经因为GC的存在。得到了非常好的解决。
所以java中的内存泄漏主要指的是另外一种。
表现为:一个内存对象的生命周期超出了程序须要它的时间长度。