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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

String s1 = new String("hello");
String s2 = "hello";

打印出来不都一样么,有什么区别???

10 个回复

倒序浏览
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
存储的位置不一样,地址值不一样
回复 使用道具 举报
wanbing522 发表于 2016-4-9 23:00
存储的位置不一样,地址值不一样

有啥不一样能说清楚点儿么{:3_65:}
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报

String s1 = new String("hello");\
这是new出来的String对象 存储的是地址值

String s2 = "hello";

这个是字符串  存储的是值
回复 使用道具 举报
是的给力黑马兄弟们
回复 使用道具 举报
两者一样的, 第二种方式只有String类才能用, 其他类都是不能这样使用的, 你只要知道就行了, 底层是JVM帮你完成的
回复 使用道具 举报
抱歉, new 出来的对象存储在堆内存中, 而直接赋值的字符串存放在常量池中, 两者有这点差别, 但是使用起来都是一样的
回复 使用道具 举报
结果一样 只是过程不一样
回复 使用道具 举报
一个是有可能在常量池拿出来 不用创建对象 另一个是创建了一个对象 然后调用常量池里的东西 存储位置不同

  当然常量池不存在这个值 那么则在创建一个对象

语言组织不好   愿君理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马