java封裝類

來源:互聯網
上載者:User

標籤:java包   地址   back   equals   equal   col   最好   als   封裝類   

1.ValueOf和強轉的區別?

       Case1: 需要強調的是String.valueOf()方法,當參數為類型是object,且值時null的時候他的處理方式

      

  public static String valueOf(Object obj) {        return (obj == null) ? "null" : obj.toString();          // 如果object為null會得到字串’null’,程式不報錯但邏輯出錯,所以這時要使用強轉  }    

 

  Case2: 基本封裝類型(Long,Integer等)的valueOf(Object)的處理和String不一樣,Object是null就返回null而不是’null’

  總結:遇到Object轉String 盡量強轉

         遇到Object轉基本封裝類型時,最好強轉.如果需要可以使用instanceOf判斷是否屬於改類型.

2.封裝類型的拆裝箱

       裝箱:基本類型轉換成封裝類型.拆箱:封裝類型轉換成基本類型

       在裝箱的時候自動調用的是Integer的valueOf(int)方法。而在拆箱的時候自動調用的是Integer的intValue方法,其他的封裝類類似

 

3.封裝類型的==判斷

       1.首先建立將封裝類型時會調用valueOf()方法.  

    例如 Integer i = 100; 等價於Integer.valueOf(i);

       ★要知到Integer封裝類中有一個IntegerCache靜態類,虛擬機器載入這個Integer對象就會將[-128,127]的值儲存在Integer cache[]中

       2,valueOf方法先判斷int值是否在IntegerCache緩衝中,如果在則返回緩衝池的資料,如果不在則返回Integer對象

 

      所以  Integer x = 200; Integer y = 200; y == x 為false;

特殊情況

       1.Int x = 100; Integer y = 100 ; x == y 為true

        原因 == 只能用在數實值型別判斷或者物件類型判斷

                     數值判斷,判斷值是否相等.對象判斷,判斷地址是否一致.

                     如果是一個數值,一個數值封裝類型,則會對封裝類進行拆箱,在進行值判斷.

 

       2.如果封裝類型進行equals進行比較時,他會先進行類型判斷,如果類型不一致直接返回false,不會繼續內容判斷

              Integer x = 100; Short s = 100; x.equlas(s); 值為false

 

資料來源於網路,如有侵權聯絡刪除(^^ゞ!

java封裝類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.