A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄昆 中级黑马   /  2012-6-6 08:29  /  1760 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s = new String("xyz");创建了2个String Object
字符对象和字符引用对象,但是他们之间有什么区别呀?
另外我对引用对象不理解,麻烦帮我详细的解说一下!

1 个回复

倒序浏览
String s = new String("xyz");
先在堆内存里开辟空间,存放一个String对象,里面装着值"xyz",然后在栈里建一个对象引用,这个引用指向堆里刚创建的那个对象,就向C里面的指针一样。
我们在后面使用s访问这个对象时,是先到栈里去找s这个对象引用,然后找到堆内存里对应的对象数据。
当jvm的垃圾回收器工作时,就会检查栈里,看堆中哪个对象在栈中没有对象引用指向它,就把堆中这部分空间释放掉。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马