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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 山鹰 中级黑马   /  2013-5-26 15:16  /  1561 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 山鹰 于 2013-5-26 18:32 编辑

public class Demo {
               
                public static void main(String[] args) {
               
                        Integer n = 3; //自动装箱
                        Integer n1 = new Integer(3);//手动装箱
                        System.out.println(n==n1);//手动装箱和自动装箱的两个同类型值比较怎么结果是false??
               
                     Integer s = new Integer(5);//手动装箱
                     Integer s1 = new Integer(5);
                     System.out.println(s==s1);//两个自动装箱的值比较是true,两个手动装箱的值比较是false???
                    
                     Integer k = 6;//自动装箱
                     Integer k1 = 6;
                     System.out.println(k==k1);//true
               
                }
}

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

4 个回复

倒序浏览
==比的是地址值。你前两个都是在堆内存开辟了2个空间。 自动装箱开辟了一个空间,只不过k和k1都指向这个空间的地址值。
回复 使用道具 举报
楼主,自动装箱和手动装箱的区别在于一个字节以内,也就是-128~127,在这之内的数,两个自动装箱,第二个不会开辟新的,手动的是不管多大数都会开辟新空间,
你把6改成大于127的试试,就是false

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
x378320002 发表于 2013-5-26 15:47
楼主,自动装箱和手动装箱的区别在于一个字节以内,也就是-128~127,在这之内的数,两个自动装箱,第二个不 ...

自动装箱每次都开辟新的空间  这就明白了  谢谢  
回复 使用道具 举报
本帖最后由 First 于 2013-5-26 19:29 编辑

这是我问的问题,2楼和3楼都给出了较为全面的答案。
基本上就是同一个问题

==比较问题
http://bbs.itheima.com/thread-51685-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马