A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林康 中级黑马   /  2012-6-19 12:35  /  1692 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马林康 于 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));
}
}

这个代码进行了几次拆箱 和几次装箱呢?

7 个回复

正序浏览
上边的哥们们说的都很对..我再加点东西吧...
我估计哥们是不太理解什么是装箱和拆箱...我就用通俗的话给你解释吧..
Integer a=1// 这就话里的1是个int类型的,你说int类型赋值给Integer理论上说是不行的是吧?
重点来了,在java中就会有这样的功能把int类型自动装箱成Integer类型在赋给Integer。
这样解释不知道能不能理解,其实我感觉哈,你不该这样问装了多少次和拆了多少次,
问一下什么是装箱和拆箱会更好,也能更快的解决你的问题,这也只是我的理解..

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
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次拆箱!
回复 使用道具 举报
Integer a =1;
Integer b=2;
Integer c=3;
每Integer 一次,自动装箱一次。
System.out.println(c.equals(a+b));
(a+b)先拆箱进行运算,得到的结果再进行一次装箱。
回复 使用道具 举报
Integer a =1;
Integer b=2;
Integer c=3;
这三句每句装箱一次,
c.equals(a+b)是先把a和b都拆箱后再相加,再将和装箱。
回复 使用道具 举报
这三句:
Integer a =1;
  Integer b=2;
  Integer c=3;
每句都是装箱一次,
System.out.println(c.equals(a+b));是先把a和b都拆箱后再相加,再将和装箱。
回复 使用道具 举报
Integer a =1;//装箱1
  Integer b=2;//装箱2

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


评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马