黑马程序员技术交流社区

标题: 自动拆箱装箱问题 [打印本页]

作者: 马林康    时间: 2012-6-19 12:35
标题: 自动拆箱装箱问题
本帖最后由 马林康 于 2012-6-19 16:28 编辑

public class equalsDemo3 {
public static void main(String[] args){
  Integer a =1;
  Integer b=2;
  Integer c=3;
  System.out.println(c.equals(a+b));
}
}

这个代码进行了几次拆箱 和几次装箱呢?
作者: 陆强强    时间: 2012-6-19 12:41
Integer a =1;//装箱1
  Integer b=2;//装箱2

  Integer c=3;//装箱3
a+b拆箱两次,装箱1次



作者: 车风波    时间: 2012-6-19 15:19
这三句:
Integer a =1;
  Integer b=2;
  Integer c=3;
每句都是装箱一次,
System.out.println(c.equals(a+b));是先把a和b都拆箱后再相加,再将和装箱。
作者: 张华廷    时间: 2012-6-19 15:37
Integer a =1;
Integer b=2;
Integer c=3;
这三句每句装箱一次,
c.equals(a+b)是先把a和b都拆箱后再相加,再将和装箱。

作者: 杨康    时间: 2012-6-19 17:47
Integer a =1;
Integer b=2;
Integer c=3;
每Integer 一次,自动装箱一次。
System.out.println(c.equals(a+b));
(a+b)先拆箱进行运算,得到的结果再进行一次装箱。

作者: 王晓新    时间: 2012-6-19 18:29
Integer a=1//把int型装箱成Integer,一次。
Integer b=2;//把int型装箱成Integer,两次。
Integer c=3;//把int型装箱成Integer,三次。
System.out.println(c.equals(a+b));//先分别拆箱a,b,再将(a+b)装箱。
所以总共是4次装箱,2次拆箱!
作者: 常佳杰    时间: 2012-6-19 19:01
上边的哥们们说的都很对..我再加点东西吧...
我估计哥们是不太理解什么是装箱和拆箱...我就用通俗的话给你解释吧..
Integer a=1// 这就话里的1是个int类型的,你说int类型赋值给Integer理论上说是不行的是吧?
重点来了,在java中就会有这样的功能把int类型自动装箱成Integer类型在赋给Integer。
这样解释不知道能不能理解,其实我感觉哈,你不该这样问装了多少次和拆了多少次,
问一下什么是装箱和拆箱会更好,也能更快的解决你的问题,这也只是我的理解..




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2