拆箱和装箱(有了基本数据类型为什么还需要包装类)

Posted song.yan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拆箱和装箱(有了基本数据类型为什么还需要包装类)相关的知识,希望对你有一定的参考价值。

一,什么是基本数据类型

java中提供了八个基本的数据类项:

  整型:int(4B),byte(1B),short(2B),long(8B),

  浮点型:float(4B),double(8B),

  布尔型:boolean(1B),

  字符型:char(2B)

*String不是基本的数据类型

每个基本的数据类型都会有一个对应得包装类(int---Integer)

二,装箱和拆箱

1、装箱,基本数据类项转换成对应的包装类型

(1)构造方法

Integer int1=new Integer(1);

(2)valueOf()实际也是通过构造方法 

Integer int2=Integer.valueOf(1);

(3)自动装箱(实际上编译时会调用 Integer的ValueOf封装)

Integer int3=1;

 

 2、拆箱,包装类转基本数据类型

(1)手动拆箱方式


Integer int3=1;
int int4=int3.intValue();

 

 (2)自动拆箱(实质:在编译的时候调用用intValue()

    Integer int3=1;
    int int5=int3;

 

 

三,总结:java面向对象是面向对象的语言,而基本的数据类型不具备面向对象的特性(封装继承多态)

(1)举例说明:

  用Integer和int分别表示Person的Id

  Integer可以判断(id==null),取最大值(Max),最小值(Min)

  int作为基本数据类型就没有这些属性

(2)再比如:

  Integer在判断两个对象是否相等时,可以使用equals()自定义的比较方式

  而int只能用==判断值是否相等

  《“==”与equals详细区分》

 

 

以上是关于拆箱和装箱(有了基本数据类型为什么还需要包装类)的主要内容,如果未能解决你的问题,请参考以下文章

Java中的拆箱和装箱

11自动拆箱和装箱

如何理解Java中的自动拆箱和自动装箱?

如何理解Java中的自动拆箱和自动装箱?

包装类

Java基础(35):装箱与拆箱---Java 中基本类型和包装类之间的转换