裝箱和拆箱:無非就是將一些需要顯示定義的操作,在編譯器級別進行了定義,不讓人看到。
其實并沒有什么先進的地方。但需要注意的是,因為進行的相應的裝箱和拆箱操作,在執行效率上,其效率是遠遠低于基本數據類型的。
需要強調的是:裝箱和拆箱是編譯器認可的,而不是虛擬機,編譯器在生成類的字節碼是,就已經插入了必要的執行的代碼,虛擬機只是執行這些代碼。
//對象包裝器,一旦定義,則值就不可以改變了,指的是它本身的值不可以改了 Integer i = 10; //但變量就只是一個變量,變量是可以改變它的引用對象的 i = 123; //i = 10,就是:i = Integer(10),Integer(10)在往后是不會再改變了的 //但i只是一個變量,i = 123就是:i = Integer(123),Integer(123)又是一個新的變量,和Integer(10)不一樣 //所以變量只是變量,它是可以根據自己的喜好改變它引用的對象的,但對象本身不會再變了 //反正也沒有提供可以改變它的方法,所以也就沒什么好說明和擔心的 Long l = 11L;//對象包裝器的好處是,會在賦值的時候,進行嚴格的類型檢查 Float f = 12F;//向C++中的隱式類型轉換,在這里是行不通的,必須顯示的說明變量的類型 Double d = 13D;//否則編譯器會報錯 Short s = 14; Byte b = 15; Character ch = 'o';// Void v = 16;//這個是占位用的,不能拿來實例化用// Boolean bool;//變量為初始化,在使用的時候會被編譯器報錯 Boolean bool = false;// System.out.
新聞熱點
疑難解答