Java中的包装类 装箱和拆箱

在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型)。基本类型的数据不是对象,不能作为对象调用其toString()、hashCode()、getClass()、equals()等等方法。   所以在java中,针对8种基本数据类型,提供了针对每个基本数据类型的包装类。如下:  基本数据类型包装类 1 int Integer 2 char Character 3 float Float 4 double Double 5 byte Byte 6 short Short 7 long Long 8 boolean Boolean 所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。   所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。   //JDK1.5 之前使用手动方式进行装箱 和拆箱 ...

 

自动装箱与拆箱

Java是面向对象的程序设计语言,在Java中我们处理的几乎都是对象.
在我们学习的过程中,遇到了基本数据类型:int,long,byte,short,char,float,double,boolean
在Java中这些并不是对象,它们只是纯粹的数据,除了数值本身的信息之外,基本数据类型不带有其他的信息或可操作的方法.
面向对象的好处就在于,对象本身可以携带更多的信息,所以如果基本数据类型可以对象的形式存在,它就可以带有更多的信息并提供相对应的操作方法.在#之前,如果想要让基本数据类型能像对象一样操作,那么要使用Integer,Long,Byte,Short,Character,Float,Double,Boolean等类来打包(Wrap)基本数据类型.Integer,Long,Byte,Short,Character,Float,Double,Boolean等类是所谓的Wrapper类.
下面来介绍一下装箱和拆箱:
装箱就是把一个基本数据类型封装到一个Wrapper类对象中;
拆箱就是把一个Wrapper对象中包含的数值赋给相应的基本数据类型变量.

在#之前,我们要执行装箱和拆箱操作,都是要手动进行的,例如:
装箱:
int data = 10;
Integer integer =  new Integer(data);
拆箱:
int i = #();
double d = #();
所以,在#之前,使用包装类是非常麻烦的.
从#开始,装箱和拆箱的动作是隐含的,可以自动的进行装箱和拆箱动作,例如:
自动装箱:
int data = 10;
Integer integer = data;当然你也可以这样写:Integer integer = 10;
自动拆箱:
int i = integer;

自动装箱和拆箱的功能事实上是编译器来帮您好的忙,编译器在编译时依你所编写的语法,决定是否进行装箱和拆箱动作.例如:
Integer integer = 10;
相当于编译器自动为你作以下的语法编译:
Integer integer = new Integer(10);
所以,自动装箱与拆箱的功能是由编译器给你提供的方便.
自动装箱、拆箱的功能提供了方便性,但隐藏了一些细节,所以使用的时候必须要小心。建议新手不要使用自动装箱、拆箱的语法,最好在对对象有了较深入的了解之后,再来使用这个功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值