java 基本数据类型的包装类

基本数据类型的包装类

Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java又给每种基本数据类型分别匹配了一个类,这个类我们称之为包装类。

注意:每个基本数据类型都有一个与之匹配的包装类。

1 基本数据类型与其包装类



包装类的层次结构:




2 数据的装箱和拆箱
2.1 装箱和拆箱


装箱:把基本数据类型包装为对应的包装类对象 

Integer i1 = new Integer(10);  // 利用构造方法
Integer i2 = Integer.valueOf(10); //利用包装类中的静态方法

拆箱:把包装类对象转换为对应的基本数据类型。


int i3= i1.intValue();  //返回包装类对象i1对应的基本数据


2.2 自动装箱和自动拆箱


前面的装箱和拆箱操作,相对较麻烦。自jdk1.5开始,java增加的对基本数据类型的自动装箱和自动拆箱操作。java编译器在编译时期会根据源代码的语法来决定是否进行装箱或拆箱。

1. 自动装箱:可以直接把一个基本数据类型赋值给包装类
   例如: Double d = 3.3;  //自动装箱操作
2. 自动拆箱:可以直接把一个包装类对象,赋值给基本类型

   例如:int a = new Integer(3); //自动拆箱。

示例代码:

  int a1 = 18;
​
        Integer i = a1;// 自动装箱  等价于:{int a2 = Integer.valueOf(a1);}
        
        int a2 = i;// 自动拆箱 等价于:{int a2 = i.intValue();}


 
自动装箱的特点
        Integer a = new Integer(666);
        Integer b = new Integer(666);
        System.out.println(a == b);// false
​
        Integer a1 = new Integer(1);
        Integer b1 = new Integer(1);
        System.out.println(a1 == b1);// false
​
        Integer a2 = 666;// new Integer(666);
        Integer b2 = 666;// new Integer(666);
        System.out.println(a2 == b2);// false
​
        Integer a3 = 127;// 没有new
        Integer b3 = 127;// 没有new
        System.out.println(a3 == b3);// true  内部存储了256个数字,从-128到127,如果输入的数在这个范围就不会new,否则就会new
        
        Integer a4 = Integer.valueOf(126);// 没有new
        Integer b4 = Integer.valueOf(126);// 没有new
        System.out.println(a4 == b4);// true
        
        Boolean bool11 = new Boolean(true);
        Boolean bool12 = new Boolean(true);
        System.out.println(bool11 == bool12);// false
​
        Boolean bool21 = true;
        Boolean bool22 = true;
        System.out.println(bool21 == bool22);// true
​
        Boolean bool31 = Boolean.valueOf(true);
        Boolean bool32 = Boolean.valueOf(true);
        System.out.println(bool31 == bool32);// true


2.3 手动装箱 与 手动拆箱
        int a = 12;
        Integer i = new Integer(a);// 手动装箱的过程
        int b = i.intValue();// 手动拆箱的过程
        System.out.println(a == i);// 包装类 与 基本数据类型 比较。则包装类 会 自动拆箱





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值