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

例题中的s3与s4.

String s4 = "I love " + s1;
         //比较字符串s4和s3
  // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象

为啥s3和s4不一样?他俩都是同样得来的,并没有用new创建啊?


提问者:慕先生9431606 2018-01-19 17:36

个回答

  • kiou1900
    2018-01-19 22:05:24
    已采纳

    String 类型的字符串是不可变的,如果改变了,其实是创建了新的对象,然后变量指向了新对象的内存地址,废除了原来指向的内存地址。用I love+s1连接后,实际上是创建了一个新的对象,也就有了新的内存地址,s3和s4各自创建了一个新对象,所以说他们2个用==比较的结果是false。

  • H9847934
    2021-02-21 16:28:35

    还是想请问,s1与s2“==”判定,s3与s4“==”判定有什么区别,不明白为什么一个是true,一个是false