Java之包装类

一、什么是包装类?

        Java中的包装类是用于将基本数据类型包装为对象的特殊类。Java中的基本数据类型包括int、double、char等,而包装类可以将这些基本数据类型封装为对象,可以提供了一些方法和属性来对其进行操作。

Java提供了以下8个包装类:

  1. Integer:封装int类型的对象。
  2. Double:封装double类型的对象。
  3. Boolean:封装boolean类型的对象。
  4. Byte:封装byte类型的对象。
  5. Character:封装char类型的对象。
  6. Short:封装short类型的对象。
  7. Long:封装long类型的对象。
  8. Float:封装float类型的对象。

 二、包装类的作用

  1. 将基本数据类型转换为对象:包装类可以将基本数据类型转换为对象,使其具有对象的特性,可以调用对象的方法操作数据。

  2. 提供了基本数据类型的一些额外功能:包装类提供了一些额外的方法和属性,可以执行一些基本数据类型无法实现的操作,例如字符串转换、数据比较等。

  3. 提供了与基本数据类型的自动装箱和自动拆箱:自动装箱指的是将基本数据类型自动转换为对应的包装类对象,自动拆箱指的是将包装类对象自动转换为对应的基本数据类型。这种自动转换方便了程序员的操作,增加了代码的简洁性。

  4. 在集合框架中的应用:集合框架中只能存储对象类型,无法直接存储基本数据类型。而包装类可以将基本数据类型转换为包装类对象,从而可以将基本数据类型存储在集合中。

三、包装类的应用场景

包装类在Java中的使用场景主要有两个方面:

  1. 在集合框架中,集合类只能存储对象类型,而不能存储基本数据类型。所以,如果需要在集合中存储基本数据类型,就需要使用包装类来进行封装。
  2. 在使用反射机制时,有些方法需要传入对象类型的参数,而基本数据类型不能作为参数传入。所以,如果需要将基本数据类型作为参数传入反射方法,就需要使用包装类进行封装。

 四、自动装箱和自动拆箱

自动装箱是指将基本数据类型自动转换为对应的包装类对象。例如,将int类型的值赋给Integer类型的变量,编译器会自动插入代码来创建一个Integer对象,并将int值赋给它。

例如: 
// 自动装箱
int num = 10; 
Integer numObj= num; 

自动拆箱是指将包装类对象自动转换为对应的基本数据类型。例如,将Integer类型的对象赋给int类型的变量,编译器会自动插入代码来从Integer对象中提取出int值。

例如: 
// 自动拆箱
Integer numObj = new Integer(10); 
int num = numObj; 

注意:在进行自动拆箱时,如果包装类对象为null,会导致NullPointerException异常的发生。

 五、包装类常用的成员方法

1、值获取和设置方法:
  1. intValue()、longValue()、floatValue()、doubleValue():获取对应基本数据类型的值。

  2. byteValue()、shortValue()、intValue()、longValue()、floatValue()、doubleValue():获取对应基本数据类型的值。

2、字符串转换方法:
  1. toString():将包装类的值转换为字符串。
  2. valueOf():将基本数据类型或字符串转换为包装类对象。
3、比较方法:
  1. equals(Object obj):比较两个包装类对象是否相等。
  2. compareTo(T other):比较两个包装类对象的大小关系。
4、包装类特有方法:
  1. parseXxx(String s):将字符串解析为对应的基本数据类型。
  2. xxxValue():将包装类对象转换为对应的基本数据类型。
  3. isInfinite()、isNaN():判断包装类对象是否表示无穷大或是非数字。
5、基本数据类型常量:
  1. MAX_VALUE:返回对应基本数据类型的最大值。
  2. MIN_VALUE:返回对应基本数据类型的最小值。
  3. SIZE:返回对应基本数据类型的位数。
  4. BYTES:返回对应基本数据类型的字节数。

你可能感兴趣的:(Java基础,java)