首页 专题 文章 代码 归档
Java 包装类型
2020.03.01 10:09 2020.03.01 10:11

1. 包装类型

Java变量类型大致分为两种:

  • 基本类型:byteshortintlongbooleanfloatdoublechar
  • 引用类型:所有classinterface类型

最直接的区别是什么?

引用类型可以为null,但是基本类型不能为null,最多是其默认值;


Java为什么会出现包装类型呢?

包装类型的出现是为了方便对基本类型进行操作。包装类型可以解决一些基本类型解决不了的问题,如下:

1.集合不允许存放基本类型数据,只能存放引用类型数据,比如包装类型。

以List为例,大家都知道一个动态数组的add(Object o)方法只能接受一个引用类型。

2.基本类型和包装类之间可以相互转换,又叫自动装箱与自动拆箱。

这个特性让我们在编码的时候能够更注重于业务的开发,而不是每转换一次就需要写一堆转换代码。

3.通过包装类型可以实现8种基本数据类型+String类型 之间可以相互转换,

int num = Integer.parseInt("1");

4.有时候一个函数需要传递一个Object变量 而你想传递int类型的进去显然不行,这就要用到包装类。如下代码:

public void test(Object obj){
}
//想传递5进去就可以这样
test(new Integer(5));

2. 对应关系

基本类型 包装器类型
boolean Boolean
char Character
int Integer
byte Byte
short Short
long Long
float Float
double Double

3. 转换方法

int与Integer为例:

1、int转Integer

  1. int i = 0;
  2. Integer ii = new Integer(i);

2、Integer转int

  1. Integer ii = new Integer(0);
  2. int i = ii.intValue();

装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。

4. 二者区别

1. 声明方式不同:

基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;

2. 存储方式及位置不同:

基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用;

3. 初始值不同:

基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;

4. 使用方式不同:

基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。

本节阅读完毕! (分享
二维码图片 扫描关注我们哟