日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

==和equals

 最初九月雪 2013-05-14
==
            ==操作符是專(zhuān)門(mén)用來(lái)比較兩個(gè)變量的值是否相等。也就是比較兩個(gè)變量所對(duì)應(yīng)內(nèi)存中的地址是否相等。比較兩個(gè)基本類(lèi)型變量是否相等只能用==。
           如果一個(gè)變量指向的類(lèi)型是對(duì)象類(lèi)型時(shí),這就涉及到兩塊內(nèi)存。
               例如:
                        object obj  = new object();
               這里面obj是一塊內(nèi)存,new object()又是一塊內(nèi)存,而obj內(nèi)存中的值就是new object()所在內(nèi)存的起始地址。對(duì)于對(duì)象類(lèi)型,如果判斷兩個(gè)變量是否指向同一對(duì)象時(shí)(就是比較內(nèi)存是否相同)就用==。
equals
         equals是比較兩個(gè)對(duì)象的內(nèi)容是否相等,但是這是兩個(gè)獨(dú)立的對(duì)象不是一個(gè)對(duì)象。
                         String str1 = new String(" ");
         String str2 = new String(" ");
         str1.equals(str2)的值為true,但是str1 == str2的值為false。str1和str2的內(nèi)容是相等的,但是內(nèi)存所在的位置是不同的。
         實(shí)際應(yīng)用時(shí),一般String類(lèi)型都是采用equals方法。
        如果自己沒(méi)有重寫(xiě)equals方法,他就自動(dòng)調(diào)用單根類(lèi)object類(lèi)的equals方法,我們可以看到這和用==沒(méi)有區(qū)別,像機(jī)械基本類(lèi)型就是這樣定義如下:
                       boolean equals(object o){
return this == o;
}

新的感覺(jué):
  '==’考察的是內(nèi)存,equals是內(nèi)容。
int i = 3;
int j = 3;
System.out.println(i == j);
結(jié)果是true

string i = “abc”;
string j = “abc";
Systrm.out.println(i == j);
結(jié)果是true

string i = new string("abc");
string j = new string("abc");
Systrm.out.println(i == j);
結(jié)果是false

這個(gè)涉及到Java內(nèi)存的管理問(wèn)題,就是棧和堆。這里面涉及到棧的共享機(jī)制,比如第一個(gè)中的int i=3;它會(huì)首先在棧中尋找'3'這個(gè)內(nèi)容,如果有的話(huà)就直接指向他,沒(méi)有就開(kāi)辟內(nèi)存并將內(nèi)容放入3.(時(shí)間不夠,再寫(xiě)吧)




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多