基础数据类型包装类 之 int Integer浅谈

基本数据类型包装类:Java将基本数据类型值封装成了对象。封装成对象有什么好处?——这样可以提供更多操作基本数值的功能。

基本数据类型:byte short int long float double boolean char
对应的类:Byte Short Integer Long Float Double Boolean Character

基本数据类型包装类长 度
byteByte一个字节
shortShort两个字节
intInteger四个字节
longLong八个字节
floatFloat四个字节
doubleDouble八个字节
booleanBoolean一个字节
charCharacter两个字节

最大值,最小值

        System.out.println("int最小值:" + Integer.MIN_VALUE);
        System.out.println("int最大值:" + Integer.MAX_VALUE);
        int最小值:-2147483648
        int最大值:2147483647


        System.out.println("byte最小值:" + Byte.MIN_VALUE);
        System.out.println("byte最大值:" + Byte.MAX_VALUE);
        byte最小值:-128
        byte最大值:127
        
        System.out.println("double最小值"+Double.MIN_VALUE);
        System.out.println("double最大值"+Double.MAX_VALUE);
        double最小值4.9E-324
        double最大值1.7976931348623157E308
       

        System.out.println("float最小值"+Float.MIN_VALUE);
        System.out.println("float最大值"+Float.MAX_VALUE);
        float最小值1.4E-45
        float最大值3.4028235E38
        

Integer
1.int是基本数据类型,Integer是包装类,是一个类
2.int类型的变量初始值为0,而Integer包装类初始值为null
3.Integer类的作用一是在类中拥有很多方法,方便Int和其他数据类型进行转换,比如parseInt()和toString()方法等等,二是:ArrayList或HashMap存数据时不能用基本类型,只能用包装类

自动装箱和自动拆箱

自动拆箱
        Integer ii=200;
        int ib=200;
自动装箱
    int ab=200;
    Integer ac=ab;
    Integer a=100;  
    int b=100;  
    System.out.println(a==b);
    自动拆箱,输出true
        Integer ia=new Integer("100");
        Integer ib=new Integer("100");

        System.out.println(ia == ib);  //输出 false
        System.out.println(ia.equals(ib));  //输出  true

解释:ia==ib 为false 原因是创建的两个新对象,在内存中放一样的位置
ia.equals(ib) equals 比较的是两个的值 所以true

        Integer i = new Integer(100);
        int j = 100;
        System.out.print(i == j);//true

解释:当一个 integer 变量和一个 int变量比较时,只要两个变量的值相等,那么结果就是true,因为 integer 本质是 int 的一个封装类,当两数比较时,java会自动将 integer拆包,所以本质上就是两个int 变量的比较。

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j);//false


解释:当一个 new 创建的 Integer 变量和一个非 new 创建的 Integer 变量比较时,结果为false。因为非 new 创建的变量存在 java 常量池中,而 new 创建的变量指向堆中新建的对象,两者的内存地址不同。

        Integer i = 110;
        Integer j = 110;
        System.out.print(i == j);//true
        Integer c=130;
        Integer d=130;
        System.out.println(c==d); //false

解释:当两个非 new 的 Integer 变量比较时,如果两个变量的值在-128到127之间,那么结果就是 true,否则是 false。

欢迎大家指点指点是否还有些地方没有考虑周全的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值