栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java String.split内存泄漏?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java String.split内存泄漏?

更新: 1.7.0_06中的行为已更改:请参阅本文:在Java-performance.info上对Java1.7.0_06中的String内部表示的更改。


正如@finnw指出的那样,使用时确实确实存在某种内存泄漏

String.substring
。原因是
String.substring
仅返回给定字符串的一部分的视图,即
基础字符串仍保留在内存中

要强制创建与源无关的新字符串,必须使用

new
关键字。即,您必须例如

String[] parts = orig.split(";");//String mySubstring = parts[i];    // keeps orig from being GC'dString mySubstring = new String(parts[i]);     // creates a new string.

或者,也许更直接

String mySubstring = new String(orig.split(";")[i]);

我必须说,这种行为对我来说似乎是“不必要的”。它可以使用弱引用或其他技术来解决。(特别考虑到这

String
已经是一个特殊的类,是Java语言规范的一部分。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号