為什么我比較s3和s4的內容是不相同的?
public static void main(String[] args) {
String s1 = "imooc";
String s2 = "imooc";
? ? ? ??
? ? ? ? //定義字符串s3,保存“I love”和s1拼接后的內容
String s3="I Love "+s1;
? ? ? ? // 比較字符串s1和s2
// imooc為常量字符串,多次出現時會被編譯器優化,只創建一個對象
System.out.println("s1和s2內存地址相同嗎?" + (s1 == s2));
? ? ? ??
? ? ? ? //比較字符串s1和s3
System.out.println("s1和s3內存地址相同嗎?" + (s1==s3) );
String s4 = "I love " + s1;
? ? ? ? ?//比較字符串s4和s3
// s1是變量,s4在運行時才知道具體值,所以s3和s4是不同的對象
System.out.println("s3和s4內存地址相同嗎?" + (s4 == s3));
System.out.println("s3和s4內容相同嗎?"+(s3.equals(s4)));
}
}
為什么最后一個的返回值為false
2020-09-13
Love
love
仔細看? ?L一個大寫一個小寫