我在网上看到关于内存泄漏的一个例子:
List<String> ans = new ArrayList<>();
for(int i=0; i<5; i++) {
String str = new String("as");
ans.add(str);
str = null;
}
除了将ans = null
,还有什么解决方法?
我在网上看到关于内存泄漏的一个例子:
List<String> ans = new ArrayList<>();
for(int i=0; i<5; i++) {
String str = new String("as");
ans.add(str);
str = null;
}
除了将ans = null
,还有什么解决方法?
你这里说的应该是str吧,其实可以将String str的定义写在外面,这样循环结束的时候str变量依然可以被访问到不会出现指针逃逸,这里将String str定义在循环体内部,在退出循环的时候,就无法获取str指针,自然就会出现内存泄漏了。
4 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答741 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
内存泄露指的是已经用不到的东西没有被释放,一直占用内存
这个例子里并没有这种情况,所以并没有内存泄露,所以并不需要解决…