JDK 1.5以后引入了不少概念 作为一个半调子.NET Developer 我发现像Boxing Unboxing(装箱 拆箱 有人译作打包解包)还有Generic(泛型) 这些概念和 C# 有着惊人的相似。
在学C#时 觉得Boxing 和 Unboxing很难理解 因为看名字装箱 拆箱 ,把我的思维拉到箱子上面去了。
现在看来,以前的想法挺可笑的。
这里的装箱应该理解为 封装对象 ,即把基础数据类型(如 int)转换成基础类型封装类的对象(如 new Integer())
拆箱就是装箱的反过程,即把基础类型封装类的对象(如 new Integer())转换为基础数据类型(如 int)。
装箱: Integer a = new Integer() ;
a = 100 ;
拆箱: int b = new Integer(100) ;
还那整型做例子:
Object myObject = 100; //Boxing + Upcasting
int i = (Integer) myObject; //Unboxing + Downcasting
第一行是先把int类型的100装箱为Integer对象 然后上塑造型 为Object类型 赋值给 myObject
第二行是先把Object型的 myObject 强制类型转换为 Integer 然后赋值给 int型的 i
更多推荐
Java Auto Boxing and Unboxing -Java 学习笔记 (23)
发布评论