首页 > 解决方案 > Java中的拆箱和装箱,但感觉有些奇怪

问题描述

        Integer a1=164;
        Integer a2=164;
        
        System.out.println(a1==a2);
        System.out.println(a1.equals(a2));

        Integer a3=new Integer(164);
        Integer a4=new Integer(164);
        
        System.out.println(a3==a4);
        System.out.println(a3.equals(a4));

This outputs as - 
false
true
false
true

但是,输入略有不同的相同代码以不同的方式工作

        Integer a1=64;
        Integer a2=64;
        
        System.out.println(a1==a2);
        System.out.println(a1.equals(a2));

        Integer a3=new Integer(64);
        Integer a4=new Integer(64);
        
        System.out.println(a3==a4);
        System.out.println(a3.equals(a4));

This outputs as -
true
true
false
true

我确信在某个地方,拆箱的概念正在跟我玩,但我无法弄清楚这一点。提前致谢。

PS我不确定我们是否有类似的问题,我没有找到。

标签: javaboxingunboxing

解决方案


推荐阅读