Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言抡医。Java 技術(shù)具有卓越的通用性达址、高效性蔑祟、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC沉唠、數(shù)據(jù)中心疆虚、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng)径簿,同時(shí)擁有全球最大的開發(fā)者專業(yè)社群罢屈。
給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零,五五四篇亭,六零七 】缠捌,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)译蒂!裙內(nèi)有開發(fā)工具鄙币,很多干貨和技術(shù)資料分享!
java中 ==與equals的區(qū)別
在談==與equals區(qū)別之前蹂随,我們先來談一談java中堆和棧的區(qū)別。
引用類型的變量因惭,其內(nèi)存分布在堆上或者常量池(字符串變量岳锁、基本數(shù)據(jù)類型常量),需要通過new等方式來創(chuàng)建蹦魔。堆內(nèi)主要存放運(yùn)行時(shí)激率,需要new來創(chuàng)建的對(duì)象。
基本數(shù)據(jù)類型變量(8種基本數(shù)據(jù)類型)以及對(duì)象的引用變量勿决,其內(nèi)存分布在棧上乒躺,變量出了作用域就會(huì)自動(dòng)釋放。
對(duì)于==與equals的區(qū)別
值變量存儲(chǔ)在內(nèi)存中的棧中低缩,引用類型的變量在棧中存放的是該引用類型變量的地址嘉冒,其本身仍存儲(chǔ)在堆內(nèi)存中。
==操作的是棧內(nèi)存中的值是否相等咆繁,如:比較兩個(gè)變量的值是否相等讳推,兩個(gè)引用變量在棧中的存放的地址是否相同,即是否指向同一個(gè)對(duì)象玩般。
equals比較的是堆內(nèi)存中的值是否相等银觅。
簡單說,==比較的是棧中的內(nèi)容坏为,即兩個(gè)對(duì)象的地址是否為同一個(gè)究驴。equals比較的是堆中內(nèi)容是否相等,即兩個(gè)對(duì)象的內(nèi)容是否相同匀伏。
我們通過以下實(shí)例來說明:
比較數(shù)值大小使用的是=
輸出結(jié)果為:a==b
2.比較兩個(gè)字符串
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零洒忧,五五四,六零七 】帘撰,無論你是大牛還是小白跑慕,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享核行!
輸出結(jié)果為:a==b
輸出結(jié)果為:a.equals(b)
在這個(gè)例子中牢硅,我們看到==和equals的作用是相同的,a==b說明a和b引用了同一個(gè)String對(duì)象芝雪。a.equsls(b)說明a和b指向的對(duì)象在堆中存儲(chǔ)的內(nèi)容相同减余。即a和b指向同一個(gè)對(duì)象。為什么會(huì)這樣呢惩系,因?yàn)镾tirng對(duì)象在創(chuàng)建時(shí)位岔,會(huì)現(xiàn)在String緩沖池中查看是否有相同的對(duì)象,如果有堡牡,則不創(chuàng)建抒抬。
再看下邊例子:
小編推薦一個(gè)學(xué)Java的學(xué)習(xí)裙【 六五零,五五四晤柄,六零七 】擦剑,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)芥颈!裙內(nèi)有開發(fā)工具惠勒,很多干貨和技術(shù)資料分享!
輸出結(jié)果為:a.equals(b) a!=b說明通過new創(chuàng)建的對(duì)象為一個(gè)新對(duì)象爬坑,與原來的不同纠屋,所以在棧中存放的地址不同,使用==比較得出的是不相等盾计。但是使用equals比較的是兩個(gè)對(duì)象的內(nèi)容售担,比較的是堆中的內(nèi)容,兩個(gè)對(duì)象的內(nèi)容相同署辉。
綜上所述:==比較的是兩個(gè)對(duì)象的存放地址灼舍,equals比較的是兩個(gè)對(duì)象的內(nèi)容。比較基本數(shù)據(jù)類型的數(shù)值大小使用==涨薪,比較兩個(gè)字符串或者對(duì)象骑素,使用equals。
大家一起學(xué)習(xí)刚夺,進(jìn)步献丑。