黑马程序员技术交流社区
标题:
关于装箱和拆箱问题
[打印本页]
作者:
徐进
时间:
2014-3-4 21:18
标题:
关于装箱和拆箱问题
什么时候是装箱 什么时候是装箱哦
作者:
kevinmesss.tz
时间:
2014-3-4 22:24
基本数据类型变成引用数据类型就是装箱
如Integer i = 5 ;
引用数据类型变成基本数据类型就是拆箱
如Integer i=1,j=2 ;
i+j 会自动拆箱进行计算
作者:
q527198615
时间:
2014-3-4 22:39
例如:Integer i = 100;
编译器自动会作以下的语法编译:Integer i = new Integer(100);
作者:
水蓝
时间:
2014-3-13 17:22
JAVA程序中,对象之间是不可以用操作符直接操作的(String是个特例)。
即使是基本数据类型的封装类,在遇到运算符的时候,也要经历自动拆箱、装箱的过程。
比如:
Integer i1 = 1;
Integer i2 = 1;
Integer i3 = i1 + i2;
复制代码
实际上就是i1和i2拆箱,加法运算后,重新再装箱成i3。
这只是简单的运算。在泛型出现后,也有这种情况。
比如:
int a = 1;
List<Integer> list = new ArrayList<Integer>();
list.add(a);
复制代码
这个就是a装箱后,加入到list中的例子。
作者:
蒋珍珍
时间:
2014-3-14 12:16
我们知道Java语言它是在5.0版本以后提供了自动装箱和自动拆箱的功能,也就是基本数据类型和包装类型数据之间可以自动进行转换,这样就无需使用包装类。如:
int m=10;
Integer n=new Integer(100);
n=m; //自动装箱
m=n; //自动拆箱
复制代码
又如下面这段代码:
Integer x=3;//第1句
x=x+5;//第2句
复制代码
第一句中的3就是一个对象,它相当于new Integer(3);也就是自动装箱的操作;第二句是首先对x自动拆箱,变成int类型的数据(相当于x.intValue()),然后加法运算,最后又将这个加法的结果进行装箱赋给了x。
具体的说什么时候使用它们,这就要视具体情况而定了,如果你想以对象的方式来操作基本类型的数据的话,
这就会涉及到装箱的动作,但这都是由Java自动完成的功能。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2