int和Integer的区别

1 篇文章 0 订阅
1 篇文章 0 订阅

      

      Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每 一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

           我们知道Java有8种基本数据类型:

byte、char、short、int、long、float、double、boolean

            而他们的封装类型对应为:

Byte、Character、Short、Integer、Long、Float、Double、Boolean    
class Test{
     public staitic void main(String [] arg){
        Integer num1 = new Integer(3);
        Integer num2 = 3;                  // 将3自动装箱成Integer类型
        int num3 = 3;
        System.out.println(num1 == num2);     // false 两个引用没有引用同一对象
        System.out.println(num2 == num3);     // true num2自动拆箱成int类型再和num3比较
    }
}  

拆箱:将引用类型转换为值类型

装箱:将值类型转换为引用类型

区别:

class Test{
    static Integer num1;    
    static int num2;
    public static void main(String [] arg){
        System.out.println(num1);    //输出null
        System.out.println(num2);  //输出0
    }
}

从以上代码中那我们可以看出:Integer的默认值是null,int的默认值是0:

我们再来看另一个实例:

class Test{
   static Integer num1;    
   static int num2;
   public static void main(String [] arg){      
     num1 = 0;
     num2 = 0;
    }
}

我们同时赋值0,由此可见,Integer可以区分未赋值和值为0的区别,int却无法表达出未赋值的情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值