java拆箱和裝箱
阿新 • • 發佈:2017-10-13
手工 enc bsp 簡潔 實現 lan 開始 spa 徹底
1.自動裝箱和自動拆箱
- 指的是原始類型和封裝類型相互轉換。
2. 為什麽要擁有裝箱和拆箱機制?
- 使java代碼更加徹底地面向對象
- 從jdk1.5以後開始支持,使代碼更加簡潔,優雅,易懂。
4. 裝箱和拆箱解決了什麽問題?
- 因為java的集合只能存入對象,不支持原始類型,在jdk1.5時需要手工去轉換原始類型和封裝類型,jdk1.5以後引入裝箱和拆箱就可以自動轉換了,使代碼的便於更加簡潔、方便、易懂。
5.裝箱和拆箱的實現過程:
/** * 裝箱,拆箱 * * @author szy * */ public class EncapsulationType {public static void main(String[] args) { Integer i = 10; // 裝箱 int n = i; // 拆箱 } }
使用javap -c 的命令反編譯後我們發現:裝箱時用了 Integer.valueOf(), 拆箱用了Integer.intValue()
6.值傳遞
- 原始類型值傳遞,是將值本身傳遞過去且原始類型保存在棧中。
- 引用類型傳遞的時候是將引用傳遞過去,程序根據這個引用去堆中獲取相應的值。引用類型的值保存在堆中,引用變量保存在棧中。
java拆箱和裝箱