问题 问答题 简答题

简要分析String的subString()方法造成内存泄漏的原因。

答案

参考答案:

substring()方法的实现中使用以下形式构造新的字符串:

new String(offset+beginIndex,endIndex-beginIndex,value);

该构造方法实现如下:

String(intoffset,intcount,charvalue[]){

this.value=value;

this.offset=offset;

this.count=count;

}

可见,并没有对value进行裁剪,只是设置了偏移量。因此使用subString()会造成泄漏。

单项选择题
单项选择题