Java編程之自動裝箱與拆箱

來源:互聯網
上載者:User

Java編程之自動裝箱與拆箱

Java.lang包中有幾個類如下:

java.lang.Boolean<br />java.lang.Byte<br />java.lang.Character<br />java.lang.Double<br />java.lang.Float<br />java.lang.Integer<br />java.lang.Long<br />java.lang.Short<br />java.lang.Void 

這些類是對java基本類型的封裝,java編譯器為我們提供這樣一種能力,這種能力是的我們可以在基本類型以及相應的封裝類之間直接賦值和操作。這種文法被稱作自動裝箱和自動拆箱。這種文法使得基本類型的封裝類的行為與基本類型是一致的。也就是說我們可以象使用基本累那樣使用其封裝類。這種文法在編譯器時期是正確的,運行事實錯誤的。

 

在java中不能把基本類型放入集合(Collection)中,java中集合持有的是對象的引用,而基本類型沒有引用,基本類型的封裝類就是為瞭解決這個問題而出現得,把一個基本類型插入到集合中是通過動裝箱與拆箱完成的。

 

 

但是在某些情況下封裝類的行與基本類型的行為是不一致的,我們來看一下執行個體!

 

public class test{<br /> public static void main(String[] args) {<br />Long a = new Long(1);<br />Long b = new Long(1);<br />boolean test = a==b||a>b||a<b ;<br />System.out.println(test);<br />}<br />}</p><p>//輸出結果<br />false

 

這種結果是讓人迷惑的。也與封裝類的定義是不一致的。除此之外一切都還正常

相關文章

聯繫我們

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