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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© anyanyhai 中级黑马   /  2012-3-24 11:25  /  2125 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s = new String("xyz");
创建了几个String Object?

引用也是一个对象吗?

6 个回复

倒序浏览
        两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它一句那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。
回复 使用道具 举报
本帖最后由 唐朋 于 2012-3-24 11:34 编辑

s 变量
new String对象
xyz 实例
回复 使用道具 举报
两个
一个是字符串对象,一个是指向这个字符串引用的对象。
回复 使用道具 举报
String s = new String("xyz");  
首先在string池内找,找到?不创建string对象:否则创建, 这样就一个string对象"xyz",  
遇到new运算符号了,在堆内存中创建string对象,并将其地址值返回给s,是第二个对象  
所以总共是2个对象
回复 使用道具 举报
2个呀。一个是常量。另一个是new string的时候创建的对象。这个对象引用的是这个常量的内容
回复 使用道具 举报
额,老问题了,看这个帖子吧 http://bbs.itheima.com/thread-9597-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马