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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String s="abc";和String s=new String("abc")的区别?
其实你就需要回答一点就行了,别的都不用说
就是在对内存上,前者只创建了一个对象,而后面的创建了两个对象

5 个回复

倒序浏览
其实我想说,前者不一定创建了新的对象,如果常量池中存在“abc”字符串,那么就直接指向它。。。。
回复 使用道具 举报
具体的是,第二句是new了一个新对象,然后新对象指向了常量池的"abc"
回复 使用道具 举报 1 0
楼主讲的不清楚啊
不过好心。谢谢
回复 使用道具 举报
谢谢楼主的提醒
回复 使用道具 举报
micro_hx 发表于 2015-6-13 15:47
其实我想说,前者不一定创建了新的对象,如果常量池中存在“abc”字符串,那么就直接指向它。。。。 ...

不是的,在内存中字符串都是单个的字符数组,只要有了字符串,就是在堆内存中开辟了一个新空间,就会把地址值赋给前面的变量!没有其他情况
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马