包装类 & 自动装箱拆箱

1.包装类
    八大基本类型 及对应的包装类
     boolean       Boolean
     byte          Byte
     char          Character
     double        Double
     float         Float
     int           Integer
     long          Long
     short         Short

     最大的用途是完成字符串类型与基本类型之间的数据类型转换
     八大基本类型的对象类型做参数也是值传递
     
2.装箱和拆箱问题 
2.1    装箱:将基本类型转换为对应的包装类型
    拆箱:将包装类型转换为对应的基本类型  
 
   在Java1.5之前的装箱和拆箱方式:手动装箱和手动拆箱,也就是编写代码完成类型转换
     代码示例如下:
        int a = 10;
        //手动装箱  --  基本类型转换为包装类型
        Integer b = Integer.valueOf(a);
        //手动拆箱  --  包装类型转换为基本类型
        int c = b.intValue();
 
   在Java1.5之后,认为手动装箱拆箱太繁琐,于是基本类型和对象类型进行了重新设计,
        两者可以直接相互引用,叫自动装箱和自动拆箱.
        代码示例如下:
            int a = 10; 
            Integer b = a;  //自动装箱
            int c = b;       //自动拆箱
 
2.2 自动拆箱与空指针问题
     包装类型在参与数学计算时,会自动拆箱转换为基本类型,相当于调用intValue方法
     若包装类的变量为null就会引发空指针异常.
     代码示例如下:
     public class NullPointerBox {
        public static void main(String[] args) {
            Integer a = null;
            /**
             * 引发空指针异常:java.lang.NullPointerException
             *    引发原因:Integer b = a+10;其右侧表达式中10为基本类型,a为包装类型
             *    在进行计算时,a自动拆箱转换为基本类型,相当于调用Integer类中的intValue方法
             *    而变量a为null;调用任何方法都会引发空指针异常
             *    故而报错
             */
            int b = a+10;//这里a要参与计算就会自动拆箱,从而引发异常
            System.out.println("b== " + b);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值