Java中Object.equals和String.equals的區(qū)別詳解
前言
Java中的堆和常量池的區(qū)別是什么呢?Object.equals與String.equals的區(qū)別呢?下面讓我們通過一個(gè)小示例讓你明白它~
1、基礎(chǔ)知識(shí)
Java的存儲(chǔ)空間:寄存器、棧、堆、靜態(tài)存儲(chǔ)區(qū)、常量存儲(chǔ)區(qū)(常量池)、其他存儲(chǔ)位置。
此處重點(diǎn)介紹堆和常量存儲(chǔ)區(qū):
堆:存儲(chǔ)new的對(duì)象;
常量池:用來存儲(chǔ)final static、String的常量。
2、Object.equals與String.equals的區(qū)別
Object.equals(==):比較內(nèi)存地址;
String.equals: 比較內(nèi)容即可,不管內(nèi)存地址。
總結(jié):
Object.equals相等,String.equals一定相等;
String.equals相等,Object.equals不一定相等。
3、實(shí)戰(zhàn)演練
public class TestString {
public static void main(String[] args){
// 維護(hù)在常量池里面
String a="hello";
String b="hello";
// new出來的所有對(duì)象都在堆內(nèi)存中
// 只要是new出現(xiàn)來的都是新對(duì)象
String c=new String("hello");
String d=new String("hello");
// 對(duì)比內(nèi)存地址
//true
System.out.println(a==b);
//false
System.out.println(a==c);
//false
System.out.println(c==d);
//對(duì)比內(nèi)容
//true
System.out.println(a.equals(b));
//true
System.out.println(a.equals(c));
//true
System.out.println(c.equals(d));
}
}解釋:
a,b都是常量,a和b都是指向常量存儲(chǔ)區(qū)中的常量’hello’,所以無論內(nèi)容還是內(nèi)存地址都是一樣的,因此a==b以及a.equals(b)都是true;
c,d都是變量,他們都是new出來的對(duì)象,里面存在兩個(gè)hello變量,c和d分別指向自己的hello變量,所以c和d內(nèi)容一樣,但是內(nèi)存地址不一樣,因此c==d是true,但是c.equals(d)為true。

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
java多線程返回值使用示例(callable與futuretask)
這篇文章主要介紹了多線程返回值使用示例(callable與futuretask),需要的朋友可以參考下2014-04-04
SpringCloud+Tornado基于jwt實(shí)現(xiàn)請(qǐng)求安全校驗(yàn)功能
這篇文章主要介紹了SpringCloud+Tornado基于jwt實(shí)現(xiàn)請(qǐng)求安全校驗(yàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Spring boot工具類靜態(tài)屬性注入及多環(huán)境配置詳解
這篇文章主要為大家詳細(xì)介紹了Spring boot工具類靜態(tài)屬性注入,及多環(huán)境配置詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Java編程中利用InetAddress類確定特殊IP地址的方法
這篇文章主要介紹了Java編程中利用InetAddress類確定特殊IP地址的方法,InetAddress類是Java網(wǎng)絡(luò)編程中一個(gè)相當(dāng)實(shí)用的類,需要的朋友可以參考下2015-11-11
Java利用遞歸算法實(shí)現(xiàn)查詢斐波那契數(shù)
今天小編就為大家分享一篇關(guān)于Java利用遞歸算法實(shí)現(xiàn)查詢斐波那契數(shù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12

