2010年9月25日 星期六

Java Boxing(裝箱) and Unboxing(拆箱) (繼堆積堆疊之後)

Boxing(裝箱)跟Unboxing(拆箱)的關係在講之前還要再提一個萬物之母的類別 "Object"
Object是一種參考型別,也是所以類別的源頭。因此Object可以指向任何的參考型別。
但是當Object指向數值型別時,那會怎麼樣?

int
數值 = 100 ;
object o = 數值 ;

參考型別是擺在堆積裡,數值型別是擺在堆疊裡。那...Object指向數值型別到底該擺哪?

這個時候,就會將100從堆疊中複製一份到堆積中的盒子裡,然後o這個物件參考指向這個盒子。這種將堆疊中的值複製到堆積中的行為,就叫Boxing(裝箱)。反過來說,將堆積中的值,複製到堆疊中的行為,就叫Unboxing(拆箱)

int 值 = (int) o ; // 將o拆箱


沒有留言:

張貼留言