小编Gok*_*mar的帖子

调用 intern() 方法后,内存中的新 String() 对象何时会被清除

List<String> list = new ArrayList<>();
for (int i = 0; i < 1000; i++)
{
    StringBuilder sb = new StringBuilder();
    String string = sb.toString();
    string = string.intern()
    list.add(string);
}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,调用 string.intern() 方法后,什么时候会清除堆中创建的 1000 个对象(sb.toString)?


编辑 1:如果不能保证可以清除这些对象。假设 GC 还没有运行,使用 string.intern() 本身是否已经过时了?(在内存使用方面?)

在使用 intern() 方法时,有什么方法可以减少内存使用/对象创建

java memory garbage-collection memory-management heap-memory

5
推荐指数
2
解决办法
418
查看次数