課程
/后端開發(fā)
/Java
/Java入門第三季
還是沒有明白為什么s3==s4返回false
2017-01-09
源自:Java入門第三季 2-2
正在回答
內(nèi)存地址是不同的,s4在s3之后將"I love imooc "+s1 賦值給s4.此時開辟了新的內(nèi)存空間./.
以上為個人理解.錯誤之處望各位斧正
粗略來説,“==”是看兩個字符串的內(nèi)存地址是不是相同,”equals“ 就是看它們的字符是不是相同的
你可以看看相關(guān)博客好好研究一下內(nèi)存分析
比較值是否相等應(yīng)該用equal,但是這里用equal卻不行,這是我為什么
public class HelloWorld {
? ? public static void main(String[] args) {
// 定義一個字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
? ? ? ??
? ? ? ? // 出現(xiàn)次數(shù)
int num = 0;
? ? ? ? ?// 循環(huán)遍歷每個字符,判斷是否是字符 a ,如果是,累加次數(shù)
for ( int i=0;i<=s.length()-1;i++)
{
? ? ? ? ? ? // 獲取每個字符,判斷是否是字符a
if (charAt(i).equal('a')) {
? ? ? ? ? ? ? ? // 累加統(tǒng)計次數(shù)
num++;?
}
System.out.println("字符a出現(xiàn)的次數(shù):" + num);
}?
凌晨四點D洛杉磯
String類型或其他的引用類型的變量中存放的是對象的地址,并不是對象本身,這點和int,char等一些基本數(shù)據(jù)類型是不同的,由于s3和s4存儲的并不是同一個對象,所以s3和s4存儲的對象的地址值也就不同,s3也就不等于s4了,但s3.equals(s4)不同,s3.equals(s4)是將s3和s4所引用的對象分別給取出來,比較的是對象本身,當(dāng)s3和s4所指向的對象相同時,s3.equals(s4)也就相同了,要是不好理解請看下圖更直觀
沒有夢想的咸魚
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答求各位大神幫忙
1 回答各位大神請幫忙
1 回答求大神幫忙解釋
4 回答各位大佬幫忙看下
1 回答哪位大神能幫忙詳細解答下
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-04-04
內(nèi)存地址是不同的,s4在s3之后將"I love imooc "+s1 賦值給s4.此時開辟了新的內(nèi)存空間./.
以上為個人理解.錯誤之處望各位斧正
2017-03-29
粗略來説,“==”是看兩個字符串的內(nèi)存地址是不是相同,”equals“ 就是看它們的字符是不是相同的
你可以看看相關(guān)博客好好研究一下內(nèi)存分析
2017-01-10
比較值是否相等應(yīng)該用equal,但是這里用equal卻不行,這是我為什么
public class HelloWorld {
? ? public static void main(String[] args) {
// 定義一個字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
? ? ? ??
? ? ? ? // 出現(xiàn)次數(shù)
int num = 0;
? ? ? ??
? ? ? ? ?// 循環(huán)遍歷每個字符,判斷是否是字符 a ,如果是,累加次數(shù)
for ( int i=0;i<=s.length()-1;i++)
{
? ? ? ? ? ? // 獲取每個字符,判斷是否是字符a
if (charAt(i).equal('a')) {
? ? ? ? ? ? ? ? // 累加統(tǒng)計次數(shù)
num++;?
}
}
System.out.println("字符a出現(xiàn)的次數(shù):" + num);
}
}?
2017-01-09
String類型或其他的引用類型的變量中存放的是對象的地址,并不是對象本身,這點和int,char等一些基本數(shù)據(jù)類型是不同的,由于s3和s4存儲的并不是同一個對象,所以s3和s4存儲的對象的地址值也就不同,s3也就不等于s4了,但s3.equals(s4)不同,s3.equals(s4)是將s3和s4所引用的對象分別給取出來,比較的是對象本身,當(dāng)s3和s4所指向的對象相同時,s3.equals(s4)也就相同了,要是不好理解請看下圖更直觀