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