问答详情
源自:2-2 Java 中字符串的不变性

求大神指教String

String s1="I  love  you";与String s2=new String("I love you");的区别。为什么练习中只能用第一种不能用第二种

提问者:夏飞雪 2016-11-22 19:18

个回答

  • Nuriko
    2016-11-24 00:30:57
    已采纳

    第一种如果"I  love  you"这个字符串不存在,则创建一个String对象(“ABC”),然后s1指向这个内存地址,无论以后用这种方式创建多少个值为"I  love  you"的字符串对象,始终都指向这个内存地址。

    第二种直接创建新的对象,不管字符串相不相同,分配地址不同,直接==的话都返回false




    第一种

  • qq_空望一指流砂_03571420
    2016-11-22 20:10:26

    他俩的区别在于后面是创建了对象的,如果你定义string s1 = "aa"  s2 = "aa",那么

    s1和s2的值和地址都是相同的,用new则不同