黑马程序员技术交流社区

标题: 两个String字符串创建方法的区别? [打印本页]

作者: yaolv7    时间: 2016-4-9 22:43
标题: 两个String字符串创建方法的区别?
String s1 = new String("hello");
String s2 = "hello";

打印出来不都一样么,有什么区别???
作者: 1833495284    时间: 2016-4-9 22:59
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: wanbing522    时间: 2016-4-9 23:00
存储的位置不一样,地址值不一样
作者: yaolv7    时间: 2016-4-9 23:01
wanbing522 发表于 2016-4-9 23:00
存储的位置不一样,地址值不一样

有啥不一样能说清楚点儿么{:3_65:}
作者: suiyanxin    时间: 2016-4-9 23:16
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: lmr1096200234    时间: 2016-4-9 23:28

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

String s2 = "hello";

这个是字符串  存储的是值
作者: wanbing522    时间: 2016-4-14 08:09
是的给力黑马兄弟们
作者: lvlup200    时间: 2016-4-14 08:34
两者一样的, 第二种方式只有String类才能用, 其他类都是不能这样使用的, 你只要知道就行了, 底层是JVM帮你完成的
作者: lvlup200    时间: 2016-4-14 08:38
抱歉, new 出来的对象存储在堆内存中, 而直接赋值的字符串存放在常量池中, 两者有这点差别, 但是使用起来都是一样的
作者: lixianglei    时间: 2016-4-14 10:27
结果一样 只是过程不一样
作者: 604840337    时间: 2016-4-14 10:31
一个是有可能在常量池拿出来 不用创建对象 另一个是创建了一个对象 然后调用常量池里的东西 存储位置不同

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

语言组织不好   愿君理解




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