課程
/后端開發(fā)
/Java
/Java入門第三季
之前講到對比兩個對象的內(nèi)存地址是可以用equals()方法或者==的
但為什么String對象用equals()方法只能對比內(nèi)容而不能對比內(nèi)存地址呢?
2020-02-19
源自:Java入門第三季 2-2
正在回答
String 中的equals 方法是被重寫的 如果不理解? 你可以去直接看一下源碼 你就會找到了
因為String類中的euqals方法就是重寫的
String Str1=new String("runoob");和String Str1="runoob";的區(qū)別在于:String Str1=new String("runoob")是在堆中創(chuàng)建一個對象(也可以理解為新的地址)然后將常量池中的runoob付給創(chuàng)建的對象(地址)最后將對象(地址)從堆中付給棧中的Str1,由于在堆中創(chuàng)建了新的地址所以將原來棧中的地址代替掉,String Str1="runoob"是直接從堆中的常量池中取將runoob值直接賦給棧中的地址。
奶尤糯米團(tuán)子 提問者
但是之前講到比較兩個對象的時候,用的equals()方法比較得是兩個對象的地址是否相同呀,重寫的equals()方法才是比較內(nèi)容呀?
而且想請教一下String Str1=new String("runoob");和String Str1="runoob";的區(qū)別在哪呀?new String("runoob")這里面的runoob是參數(shù)嗎?那String的有參構(gòu)造方法是系統(tǒng)自帶的嗎?
equals()方法不是比對地址,是字符串與指定對象進(jìn)行比較
public?class?Test?{??? ?public?static?void?main(String?args[])?{? ?????String?Str1?=?new?String("runoob");???? ????String?Str2?=?Str1;? ???String?Str3?=?new?String("runoob");???? ???boolean?retVal;???????? ???retVal?=?Str1.equals(?Str2?);??????? ???System.out.println("返回值?=?"?+?retVal?);? ????retVal?=?Str1.equals(?Str3?);??? ???System.out.println("返回值?=?"?+?retVal?);?? ?????} ??????}
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答equals方法
1 回答equals方法重寫
2 回答關(guān)于equals方法
2 回答重寫equals方法
2 回答改寫equals方法中
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-05-05
String 中的equals 方法是被重寫的 如果不理解? 你可以去直接看一下源碼 你就會找到了
2020-03-05
因為String類中的euqals方法就是重寫的
2020-02-22
String Str1=new String("runoob");和String Str1="runoob";的區(qū)別在于:String Str1=new String("runoob")是在堆中創(chuàng)建一個對象(也可以理解為新的地址)然后將常量池中的runoob付給創(chuàng)建的對象(地址)最后將對象(地址)從堆中付給棧中的Str1,由于在堆中創(chuàng)建了新的地址所以將原來棧中的地址代替掉,String Str1="runoob"是直接從堆中的常量池中取將runoob值直接賦給棧中的地址。
2020-02-21
但是之前講到比較兩個對象的時候,用的equals()方法比較得是兩個對象的地址是否相同呀,重寫的equals()方法才是比較內(nèi)容呀?
而且想請教一下String Str1=new String("runoob");和String Str1="runoob";的區(qū)別在哪呀?new String("runoob")這里面的runoob是參數(shù)嗎?那String的有參構(gòu)造方法是系統(tǒng)自帶的嗎?
2020-02-19
equals()方法不是比對地址,是字符串與指定對象進(jìn)行比較