java面試--01

來源:互聯網
上載者:User

標籤:不同   dha   code   編碼方式   基於   實現   常量   物件類型   基本   

001、“a==b”和”a.equals(b)”有什麼區別?a.hashCode() 有什麼用?與a.equals(b) 有什麼關係?

     object的預設equals實現: a.equals(b)和a==b有一樣的結果,即預設實現中認為只有a和b指向同一個對象時才返回true。其中,String重寫了equals,認為只要String的字元系列相同就可以返回true。 

    如果 a 和 b 都是對象,則 a==b 是比較兩個對象的引用,只有當 a 和 b 指向的是堆中的同一個對象才會返回 true,而 a.equals(b) 是進行邏輯比較,所以通常需要重寫該方法來提供邏輯一致性的比較。例如,String 類重寫 equals() 方法,所以可以用於兩個不同對象,但是包含的字母相同的比較。

  hashCode() 方法是相應對象整型的 hash 值。它常用於基於 hash 的集合類,如 Hashtable、HashMap、LinkedHashMap等等。根據 Java規範,兩個使用 equal() 方法來 判斷相等的對象,必須具有相同的 hash code。

  註:     

    ①  hash code是一種編碼方式,在Java中,每個對象都會有一個hashcode,Java可以通過這個hashcode來識別一個對象。

 ② equlas大多用來做字串比較,要判斷基礎資料型別 (Elementary Data Type)或者物件類型,需要使用==

002、String s=new String(“xyz”);建立了幾個字串對象?

          第一次運行:兩個:在String常量池中,如果不存在"xyz"對象,則會建立"xyz"對象和new String("xyz")對象。

                                Strng a = "xyz";

                                String s = new String("xyz");

        第二次運行: 一個:在String常量池中,如果已經存在"xyz"對象,則不會再建立"xyz"對象,僅建立new String("xyz")對象;

java面試--01

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.