java包装类:需要注意的点

package java_wrapper;

public class WrapperTest {
    public static void main(String[] args) {
        
        Integer one = Integer.valueOf(100);
        Integer two = Integer.valueOf(100);
        System.out.println("one==two的结果:"+(one == two)); //1

        Integer three = 100; //自动装箱
        //Integer three = Integer.valueOf(100); //自动完成和one, two一样的操作
        System.out.println("three==100的结果:"+(three == 100)); //2 自动拆箱

        Integer four = 100;
        //Integer four = Integer.valueOf(100);
        System.out.println("three==four的结果:"+(three == four)); //3

        Integer five = 200;
        System.out.println("five==200的结果:"+(five == 200)); //4

        Integer six = 200;
        System.out.println("five==six的结果:"+(five == six)); //5
    }
}

输出:

one==two的结果:true
three==100的结果:true
three==four的结果:true
five==200的结果:true
five==six的结果:false

注意注释为3和5的结果,为什么同样的操作结果不同呢?
那是因为当数值在-128~127之间,进行自动装箱时会在对象池中判断有没有这个数值,有就直接用,没有就重新构造一个。在注释3语句中,数值为100,返回值为true,注释5中,数值为200,返回值为false。
在这里插入图片描述
在8中基本数据类型对应的包装类中,除了float和double,其他的都可以应用常量池概念。
在这里插入图片描述
例如:

package java_wrapper;

public class WrapperTest {
    public static void main(String[] args) {
        Double d1 = Double.valueOf(100);
        System.out.println("d1==100的结果:"+(d1 == 100));

        Double d2 = Double.valueOf(100);
        System.out.println("d1==d2的结果:"+(d1 == d2));
    }
}

输出:

d1==100的结果:true
d1==d2的结果:false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值