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);
所以,自动装箱与拆箱的功能是由编译器给你提供的方便.
自动装箱、拆箱的功能提供了方便性,但隐藏了一些细节,所以使用的时候必须要小心。建议新手不要使用自动装箱、拆箱的语法,最好在对对象有了较深入的了解之后,再来使用这个功能。
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);
所以,自动装箱与拆箱的功能是由编译器给你提供的方便.
自动装箱、拆箱的功能提供了方便性,但隐藏了一些细节,所以使用的时候必须要小心。建议新手不要使用自动装箱、拆箱的语法,最好在对对象有了较深入的了解之后,再来使用这个功能。
相关文章推荐
- 01 Java基本数据类型、包装类、装箱拆箱、parseXxx()、String.valueOf()
- Java 包装类 自动装箱和拆箱
- Java包装类、自动装箱与拆箱知识总结
- Java包装类、装箱拆箱
- 4000 java包装类及其拆箱装箱
- JAVA包装类及其拆箱装箱及Integer类拆装箱的细节
- 智渔课堂官方免费教程二十一:Java常用类之包装类 自动装箱 自动拆箱
- Java类与对象===Java包装类、拆箱和装箱详解
- java中包装类及装箱拆箱
- java中的包装类与装箱拆箱定义
- Java中包装类 装箱和拆箱
- java中的包装类简介及拆箱和装箱
- 【Java】Java包装类,Java的自动打包(装箱)与解包(拆箱)
- Java 包装类 自动装箱和拆箱
- Java 包装类 自动装箱和拆箱
- Java包装类、拆箱和装箱详解
- Java基础之包装类的自动装箱和拆箱详解
- 【转】有关Java包装类及其拆箱装箱的小结
- java包装类、拆箱和装箱
- Java包装类、拆箱和装箱详解