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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许聪聪 中级黑马   /  2013-6-14 00:04  /  1428 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Integer x = 4;
x = 4+3;
我知道4的类型是int的类型,但是Integer是int的包装类,所以上面的话会进行自动拆箱以及自动装箱
我的问题是,自动装箱的底层代码是怎样实现的呢?

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
Integer x = 4;
这是自动装箱,等效于:
Integer x=new Integer(4);这是装箱动作。
x = 4+3;
拆箱动作:x.intValue(),将4从包装类变为int类型,与3相加后又进行装箱动作。

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
自动装箱:
public final class Integer extends Number implements Comparable<Integer> {
public static Integer valueOf(int i) {
        if(i >= -128 && i <= IntegerCache.high)
            return IntegerCache.cache[i + 128];
        else
            return new Integer(i);
    }
}
拆箱:
public final class Integer extends Number implements Comparable<Integer> {
private final int value;


    public Integer(int value) {
        this.value = value;
    }
public int intValue() {
        return value;
    }
}
望采纳,在Integer类的源码中你会找到的

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主您好!如果问题得到解决的话.请及时将主题改成已解决哦~~
在编辑里面.然后选择主题分类.
谢谢您的配合{:soso_e100:}
回复 使用道具 举报
Integer x = 4;//Integer x = new Integer(4)
x = 4+3;//x=new Integer(4+3)
注意:x=4+3的话,4+3只是个表达式,运算完毕后,再封装。
你应该这样写:x=x+4,才能设计拆箱动作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马