Pro*_*ist 1 java string immutability
考虑一下代码
String s="hello";
s=s.concat("java");
Run Code Online (Sandbox Code Playgroud)
由于String对象是不可变的,因此应使用S引用的值"Hello Java"创建新对象.
现在我的查询是,s先前引用的早期String对象"hello"在哪里?
它是否仍然存在于内存中?如果是的话怎么样?因为在Java中,对象的生命周期仍然存在,直到它的引用存在.在"hello"的情况下,当第二个语句执行时,它的引用已经丢失.那怎么能在内存中存在呢???
请有人解决我的疑问.:)
它是否仍然存在于内存中?
是.该s变量不再引用它.
它将继续存在于常量池中,因为您已将其声明为字符串文字; 即使它不在常量池中,它也会继续存在,直到它被垃圾收集,这不会立即发生.
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |