黑马程序员技术交流社区
标题:
关于装箱和拆箱的问题
[打印本页]
作者:
闫玉泉
时间:
2012-1-27 15:13
标题:
关于装箱和拆箱的问题
如题目,请问为什么要装箱和拆箱,基本类型也要吗?
作者:
尹旗龙
时间:
2012-1-27 15:48
自动装箱和拆箱的功能是为了提高程序开发效率
装箱是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double, 拆箱是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。
举个简单例子:
自动装箱:
int data = 10;
Integer integer = data;
当然你也可以这样写:Integer integer = 10;
自动拆箱:
int i = integer;
基本数据类型当然可以用这些功能了
另外,自动装箱、拆箱的功能是由编译器提供,它提供了方便性,但隐藏了一些细节,所以使用的时候必须要小心
作者:
最初的理想
时间:
2012-1-27 16:24
装箱拆箱就是对基本数据类型而言的,对引用类型没有这一说法。
作者:
黄秋
时间:
2012-1-27 17:47
装箱和拆箱,就是自动进行类型转换。至于为何要进行类型转换,类型不匹配时,就要类型转换呗。
如a 是ArrayList,现在可这样:a.add(3);
以前不会装箱和拆箱,要如此:a.add((Integer)11);
作者:
郭繁森
时间:
2012-1-27 19:27
活跃奖励
作者:
房宝彬
时间:
2012-1-27 19:40
{:soso__186724445477376410_2:}
作者:
任奇
时间:
2012-1-27 20:14
为什么需要装箱:对于引用类型赋给Object没问题,都是引用类型,只是一个引用的赋值,但是值类型赋给Object就有问题了,因为值类型没有引用,为了造出一个引用,也就有了装箱。
为什么需要拆箱:就是将从对象中提取值类型。
String i=“1”;
object s=i; //装箱
int j=(int)i; //拆箱
拆箱要小心转换。
新年哈皮!
作者:
逄焕玮
时间:
2012-1-28 00:34
为什么要装箱和拆箱,基本类型也要吗?
这个就是基本数据类型对象包装类的一个新特性,是JDK1.5新增的特性
至于为什么,JAVA升级有三因素,①提高效率②简化书写③提高安全性,自动装箱拆箱就是为了简化书写的
Integer a = new Integer(4); //1.5之前是需要这么写的,或者是用另一个构造方法 Integer(String s),传一个 "4"
Integer a = 4; //自动装箱,此处的 4 就等同于上一句中的new Integer(4),很大程度上的简化了书写
a = a + 5; //此处a是一个基本类型包装类的对象,可以直接跟int类型的5进行加法运算,a先自动拆箱,运算结束后再装箱,极大的简化了书写
作者:
苏格拉底的弟子
时间:
2012-1-30 22:30
装箱是将值类型转换为值类型,拆箱就是将己转换为引用类型的值类型转换回来
装箱 :int i=10;
object o=i;
拆箱:int j=(int)o;
而且装修拆箱就是相对于基本数据类型而言的,引用数据类型没有装箱的概念,
装箱拆箱是JDK1.5后的新特性 也是为了方便操作的,简化了书写。
另外我们把基本数据类型装箱成类后,里面提供了很多方法来攻我们使用,这样来是不是很方便呢?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2