Java中的包装类及自动装箱、拆箱

        首先为什么要在Java语言中引入包装类呢,先前学C语言的时候好像没有讲过这个概念。答案是Java是一个面向对象的高级语言,它需要面向对象编程,也就需要各种各样的类,而我们的几种基本数据类型只有引入了包装类(对应的引用类型),它们才能变成我们熟知的对象使用各种各样的方法,Java中的类才足够完整,Java才是真正的面向对象。

        下面给出Java中对基本数据类型的包装类:

                基本数据类型                         包装类

                        byte                                 Byte

                       short                                Short

                        int                                   Integer

                        long                                 Long

                        float                                 Float

                        double                           Double

                        boolean                         Boolean

                        char                               Character

        可以看出除了int和char的包装类是对字母进行了添加,其他的包装类都只是将首字母变为大写,这也让我们更加好记忆。

        下面给出使用包装类的例子:

        int i = 1;

        Integer t = new Integer(i);

        String s = t.toString(); // s = “1“,t是类,可以调用toString方法

        实际上这是一个装箱的过程,装箱:包装类使得一个基本数据类型的数据变成了类。有了类的特点,可以调用类中的方法。 

        那么相应的我们也就得到了拆箱的概念

        拆箱:将数字包装类中内容变为基本数据类型。

        举例:

        int j = t.intValue(); // j = 1,intValue取出包装类中的数据

        那么什么又是自动装箱、拆箱呢?从上述例子我们看到,要想将int i 装箱,我们需要手动去new一个Integer的对象,比较麻烦,而从JDK1.5之后,JDK支持自动装箱,自动拆箱,但类型必须匹配。

        举例:

        Integer i=1;//自动装箱

        int   a=i;    //自动拆箱

        由此给出概念:

        自动装箱:就是将基本数据类型自动转换为对应的包装类;
        自动拆箱:就是将包装类自动转换为基本数据类型:

        但需要特别注意的是,当包装对象的数值进行比较时,不能简单的使用==来进行判断,当该对象的数值在没溢出时,其可以进行比较,溢出的话我们就应该使用equals进行比较,否则会得到与实际不相符合的结果。

        举例:

        Integer a=128;
        Integer b=128;
        System.out.println(a==b);//false
        System.out.println(a.equals(b));//true
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值