代码如下,我不明白为什么 一个输出true,一个输出false。
String string1 = "i love you";
String string2 = "i love you";
//输出 true
System.out.println(string1 == string2);
String string3 = new String("i love you");
String string4 = new String("i love you");
//输出 false
System.out.println(string3 == string4);
以下是我的思考过程,麻烦看看我哪里考虑错了。
string1,string2,string3,string4 都应该是引用类型吧,既然是引用类型,双等号的意思就是判断两者的内存地址是否一样。 那么,同样是String类型,为什么 string1 和string2 的内存地址就一样,而string3,string4 的内存地址就不一样呢?