您的位置:首页 > 编程语言 > Java开发

Java中的包装类 装箱和拆箱

2014-09-24 21:07 176 查看
在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);

所以,自动装箱与拆箱的功能是由编译器给你提供的方便.

自动装箱、拆箱的功能提供了方便性,但隐藏了一些细节,所以使用的时候必须要小心。建议新手不要使用自动装箱、拆箱的语法,最好在对对象有了较深入的了解之后,再来使用这个功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java