简要分析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()会造成泄漏。
new String(offset+beginIndex,endIndex-beginIndex,value);
该构造方法实现如下:
String(intoffset,intcount,charvalue[]){
this.value=value;
this.offset=offset;
this.count=count;
}
可见,并没有对value进行裁剪,只是设置了偏移量。因此使用subString()会造成泄漏。
答案解析:有
微信扫一扫手机做题