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

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

為什么?s1==s2是true,s3==s4是false

為什么s1==s2是true,s3==s4是false

正在回答

3 回答

字符串可以說在被創建后便是一個常量,內容不可更改。

更改的話相當于變相創建了一個新的字符串。

s1創建了一個字符串為imooc,將這個常量保存在了內存里。

創建s2時,由于s2創建的內容和s1一樣,所以s2并沒有在內存中創建一個新的字符串,而是指向s1所創字符串的內存地址,所以s1和s2指向的是同一個常量,s1=s2。

s3是在s1的基礎上創建了一個新的字符串I love imooc,創建時開辟了新的內存地址

s4同理,也是在s1上創建了新的字符串。

字符串之間的比較,是比較內存首地址是否相同,而不是內容。

所以s1和s2在內存的指向上是相同,而s3和s4是各自新開辟的字符串,事先建立的字符串后付的值,所以s3和s4指向的內容并不是一個,所以內存地址不同,從而不相等


4 回復 有任何疑惑可以回復我~
#1

暮女神

完美的回答
2017-02-05 回復 有任何疑惑可以回復我~

“==”是存儲內存地址的比較。

s1和s2是賦值字符,指向同一個內存地址。s3和s4是不同的對象,指向不同的內存地址

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

因為s3,s4的內存地址不一樣

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

舉報

0/150
提交
取消

為什么?s1==s2是true,s3==s4是false

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

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

幫助反饋 APP下載

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

公眾號

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