既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢
10 回答

慕桂英3389331
TA贡献2036条经验 获得超8个赞
我自己的理解,说的不对的地方欢迎指正。
JDK6中,String的一个方法叫subString,这个是用来生成一个子字符串的。为了更加快速的生成,String有一个构造函数,
String(int offset, int count, char value[]) {
this.value = value;
this.offset = offset;
this.count = count;
}
直接指向了原来String的数组。我们都知道,每次都会生成一个新的常量池中的String字符串。然而这个引用就导致了原来的String无法被回收。因为subString的value会指向他。这里就会导致内存泄露。
JVM的确是自己进行GC的,不用程序员过多干涉,但是由于一些错误操作,导致一些本来不在需要使用的对象仍然有引用,才会导致内存泄露的。
添加回答
举报
0/150
提交
取消