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

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

麻煩各位大神幫忙解釋下

還是沒有明白為什么s3==s4返回false

正在回答

4 回答


http://img1.sycdn.imooc.com//58e2884d00017ce208190460.jpg

內存地址是不同的,s4在s3之后將"I love imooc "+s1 賦值給s4.此時開辟了新的內存空間./.

以上為個人理解.錯誤之處望各位斧正

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

粗略來説,“==”是看兩個字符串的內存地址是不是相同,”equals“ 就是看它們的字符是不是相同的

你可以看看相關博客好好研究一下內存分析

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

比較值是否相等應該用equal,但是這里用equal卻不行,這是我為什么

public class HelloWorld {

? ? public static void main(String[] args) {

// 定義一個字符串

String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";

? ? ? ??

? ? ? ? // 出現次數

int num = 0;

? ? ? ??

? ? ? ? ?// 循環遍歷每個字符,判斷是否是字符 a ,如果是,累加次數

for ( int i=0;i<=s.length()-1;i++)

{

? ? ? ? ? ? // 獲取每個字符,判斷是否是字符a

if (charAt(i).equal('a')) {

? ? ? ? ? ? ? ? // 累加統計次數

num++;?

}

}

System.out.println("字符a出現的次數:" + num);

}

}?

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

凌晨四點D洛杉磯

要重寫object類中的equals方法
2017-06-19 回復 有任何疑惑可以回復我~

String類型或其他的引用類型的變量中存放的是對象的地址,并不是對象本身,這點和int,char等一些基本數據類型是不同的,由于s3和s4存儲的并不是同一個對象,所以s3和s4存儲的對象的地址值也就不同,s3也就不等于s4了,但s3.equals(s4)不同,s3.equals(s4)是將s3和s4所引用的對象分別給取出來,比較的是對象本身,當s3和s4所指向的對象相同時,s3.equals(s4)也就相同了,要是不好理解請看下圖更直觀

http://img1.sycdn.imooc.com//587367b70001ab6811050678.jpg

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

沒有夢想的咸魚

怎么有種指針的意味
2017-02-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第三季
  • 參與學習       409766    人
  • 解答問題       4543    個

Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧

進入課程

麻煩各位大神幫忙解釋下

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

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

幫助反饋 APP下載

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

公眾號

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