卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

eq閃雙風(fēng)是什么機(jī)制 equal和雙等的區(qū)別?

equal和雙等的區(qū)別?Java中的數(shù)據(jù)類型可以分為兩類:1?;緮?shù)據(jù)類型,也稱為原始數(shù)據(jù)類型。Byte,short,char,int,long,float,double,Boolean它們之間的比較

equal和雙等的區(qū)別?

Java中的數(shù)據(jù)類型可以分為兩類:

1?;緮?shù)據(jù)類型,也稱為原始數(shù)據(jù)類型。Byte,short,char,int,long,float,double,Boolean

它們之間的比較使用雙等號(hào)(=)來比較它們的值。

2. 復(fù)合數(shù)據(jù)類型(類)

當(dāng)它們與(==)比較時(shí),它們會(huì)比較它們?cè)趦?nèi)存中的存儲(chǔ)地址。因此,除非它們是相同的新對(duì)象,否則它們的比較結(jié)果為真,否則比較結(jié)果為假。Java中的所有類都繼承自object的基類。在object的基類中,定義了一個(gè)equal方法。此方法的初始行為是比較對(duì)象的內(nèi)存位置,但在某些類庫中,此方法已被覆蓋,例如string、integer和date。在這些類中,equals有自己的實(shí)現(xiàn),不再是堆內(nèi)存中比較類的存儲(chǔ)地址。

對(duì)于復(fù)合數(shù)據(jù)類型之間的相等比較,在不重寫equals方法的情況下,它們之間的比較仍然基于它們?cè)趦?nèi)存中存儲(chǔ)位置的地址值,因?yàn)閷?duì)象的equals方法也與雙等號(hào)(=)進(jìn)行比較,因此,比較后的結(jié)果與雙等號(hào)(=)的結(jié)果相同。相比之下,就像Java開發(fā)語言中的兩個(gè)豌豆一樣,我們經(jīng)常使用雙等號(hào)“==”使兩個(gè)變量(如3==3)為真。但是在Java中,我們使用string=“=”來判斷第二個(gè)變量。有時(shí)兩個(gè)變量是完全相同的,但是它們的結(jié)果總是不相等(false),所以對(duì)于新手開發(fā)人員來說,這常常是令人困惑的。通常在展開時(shí),我們經(jīng)常使用A.equals(b)來判斷兩個(gè)字符串是否相等。

在Java中,使用“==”通常比較兩個(gè)變量的地址,也就是說,如果兩個(gè)變量存儲(chǔ)在同一個(gè)內(nèi)存單元中,它們的結(jié)果將相等。對(duì)于兩個(gè)字符串string a=“1234”string B=“1234”,對(duì)于兩個(gè)變量a和B,當(dāng)使用“==”和a.equals(B)時(shí),它們的結(jié)果是相等的,因?yàn)閮蓚€(gè)字符串a(chǎn)和B后面是兩個(gè)字符串常量,并且它們?cè)趦?nèi)存中的存儲(chǔ)位置相同,所以“==”和a.equals(B)的結(jié)果是相等的;

但是對(duì)于字符串a(chǎn)=new string(“1234”)字符串B=new string(“1234”),雖然a和B的結(jié)果都是“1234”,但是用“==”來判斷時(shí),結(jié)果是不相等的,因?yàn)榇藭r(shí)a和B是兩個(gè)對(duì)象,內(nèi)存位置不相等,所以“=”他的判斷是不相等的,此時(shí),使用a.equals(b)得到的結(jié)果是正確的;

使用a.equals的原因是(b)結(jié)果是兩個(gè)字符串相同,因?yàn)閟tring類重寫了equal()方法。他的比較方法是遍歷兩個(gè)字符串中的每個(gè)字符。只有當(dāng)兩個(gè)字符串的每個(gè)位置的字符相同時(shí),此方法返回的值才會(huì)相等(true)。因此,在我們的開發(fā)過程中,當(dāng)遇到字符串比較時(shí),我們使用string equals()方法進(jìn)行判斷,這樣可以減少很多bug。同樣,我們不僅可以使用equal()方法進(jìn)行字符串比較,還可以使用equal()方法對(duì)任意兩個(gè)對(duì)象進(jìn)行比較;

閱讀以上內(nèi)容后,您知道Java字符串比較嗎?