新手学JAVA(四)----装箱与拆箱
一 什么是裝箱?什么是拆箱?
在Java中,Java對每種基本數(shù)據(jù)類型都提供了對象的包裝器類型。看下表:
???????????????????????????????????????????????????????????????????????????????????????????????????????????包裝類對應(yīng)表
| byte | Byte |
| boolean | Boolean |
| short | Short |
| char | Character |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
在Java SE5之前,如果要生成一個(gè)數(shù)值為50的Integer對象,需要這么進(jìn)行:
而在Java SE5開始,Java就封裝了自動(dòng)裝箱的特性,定義數(shù)值是這樣做就可以:
Integer obj = 50;這個(gè)過程中自動(dòng)根據(jù)數(shù)值創(chuàng)建Integer對象,就叫裝箱;
簡單一點(diǎn)說,裝箱就是 自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型;拆箱就是 自動(dòng)將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型。
那什么是拆箱?和裝箱對象,就是將包裝器類型轉(zhuǎn)換成基本數(shù)據(jù)類型。拆裝箱的過程如下圖:
二 拆裝箱是如何實(shí)現(xiàn)的?
我們以Double類型為例,先看下面的一段代碼:
public class Main{public static void main(String[] args){Double DB = 10.34;double db=DB;} }然后我們對這段代碼進(jìn)行反編譯,結(jié)果如下:
然后咱們換成Integer類型的再試試,直接看結(jié)果:
看出有什么相同來了沒有,程序在自動(dòng)裝箱的時(shí)候自動(dòng)調(diào)用valueof方法,在拆箱的時(shí)候,調(diào)用相應(yīng)的類型的”**.**Value”方法。
由此可以看出,程序的自動(dòng)裝箱是調(diào)用包裝器類型的valueof方法,而拆箱是調(diào)用包裝器的”**.**Value”方法來實(shí)現(xiàn)的。
總結(jié)
以上是生活随笔為你收集整理的新手学JAVA(四)----装箱与拆箱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java与邮件系统交互之使用Socket
- 下一篇: 扩展KMP --- HDU 3613 B