Art*_*nis 6 java string stringbuilder garbage-collection stringbuffer
示例代码:
StringBuffer sb = new StringBuffer("hi");
sb = null;
Run Code Online (Sandbox Code Playgroud)
题:
即使在StringBuffer被垃圾收集之后,文字字符串"hi"会以某种方式保留在内存中吗?或者它只是用于为StringBuffer创建一个char数组,然后永远不会放在内存中?
Kar*_*cki 10
是的,hi
是一个编译时常量,因此它被编译器实例化并驻留在字符串池中.
此外,G1GC可以执行字符串重复数据删除作为JEP 192的一部分:G1中的字符串重复数据删除,在这种情况下,即使hi
没有被它实例化,javac
也可能会将其作为重复数据删除的一部分保留.
归档时间: |
|
查看次数: |
193 次 |
最近记录: |