亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么s1是變量? ( // s1是變量,s4在運行時才知道具體值,所以s3和s4是不同的對象) 當時==時是比較兩個變量的地址?equals比較的是他們的內容值?

public class HelloWorld {

? ? 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));

}

}


正在回答

1 回答

結果應該是true false false ??

s1 與 s2 是不同的,只是jvm它會檢測到你輸入的值都是一樣的,就會把s1 和 s2 同時指向在一起。所以,s1 == s2 ?這比較的是地址

而s4 s3 的值是相等的,當時它們指向的地址是不同的。所以是false

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么s1是變量? ( // s1是變量,s4在運行時才知道具體值,所以s3和s4是不同的對象) 當時==時是比較兩個變量的地址?equals比較的是他們的內容值?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號