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