String s4 = "I love " + s1;
//比较字符串s4和s3
// s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象
为啥s3和s4不一样?他俩都是同样得来的,并没有用new创建啊?
String 类型的字符串是不可变的,如果改变了,其实是创建了新的对象,然后变量指向了新对象的内存地址,废除了原来指向的内存地址。用I love+s1连接后,实际上是创建了一个新的对象,也就有了新的内存地址,s3和s4各自创建了一个新对象,所以说他们2个用==比较的结果是false。
还是想请问,s1与s2“==”判定,s3与s4“==”判定有什么区别,不明白为什么一个是true,一个是false