黑马程序员技术交流社区

标题: String之 内存问题 [打印本页]

作者: b_boywindy    时间: 2012-2-28 11:44
标题: String之 内存问题
String str = "abc";
str = new String("hehe");
当执行到第一句代码时,内存中产生了一个字符串对象 "abc",并将其引用赋给str。
当执行到第二句代码时,内存中又产生了一个字符串对象 "hehe",并将其引用赋给了str。
所以改变的只是引用而已,而并没有改变字符串 "abc"的内容,内存中产生了两个字符串对象。

那请问怎么打印出字符串"abc"呢?  难道不能打印了吗 ?  那岂不是占据了内存,或者说拜拜浪费了吗?

作者: 王睿    时间: 2012-2-28 17:14
当对象没有引用指向它时,垃圾回收机制就会把它回收的。
作者: 冯兵兵    时间: 2012-2-29 12:50
想打印“abc“的话,让str重新指向它就可以了即str=”abc“;system.out.println(str)。当没有引用指向“abc”的话,它会被垃圾回收机制回收;这一点就是java比C++好的地方。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2