Java 包装类
本小节我们将学习 Java 的包装类,我们将了解到什么是包装类,为什么需要包装类,Java 提供的包装类有哪些,各种包装类的常用方法和常量介绍,什么是装箱操作以及什么是拆箱操作等内容。
1. 什么是包装类
Java 有 8 种基本数据类型,Java 中的每个基本类型都被包装成了一个类,这些类被称为包装类。
包装类可以分为 3 类:Number
、Character
、Boolean
,包装类的架构图如下所示:
2. 为什么需要包装类
我们知道 Java 是面向对象的编程语言,但为了便于开发者上手,Java 沿用了 C 语言的基本数据类型,因此 Java 数据类型被分为了基本数据类型和引用数据类型。
对于简单的运算,开发者可以直接使用基本数据类型。但对于需要对象化交互的场景(例如将基本数据类型存入集合中),就需要将基本数据类型封装成 Java 对象,这是因为基本数据类型不具备对象的一些特征,没有对象的属性和方法,也不能使用面向对象的编程思想来组织代码。出于这个原因,包装类就产生了。
包装类就是一个类,因此它有属性、方法,可以对象化交互。
3. 基本数据类型与包装类
下表列出了基本数据类型对应的包装类。这些包装类都位于 java.lang
包下,因此使用包装类时,我们不需要手动引入。
基本数据类型 | 对应的包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
除了 int
对应的包装类名称为 Integer
以及 char
对应的包装类名称 Character
,其他 6
种数据类型对应的包装类,命名都为其基本数据类型的首字母的大写。
4. 包装类常用方法
4.1 Number 类
Number 类是所有数值类型包装类的父类,这里以其中一个子类 Integer
类为例,介绍其构造方法、常用方法以及常量。
4.1.1 构造方法
Integer 类提供两个构造方法:
Integer(int value)
:以 int 型变量作为参数创建 Integer 对象;Integer(String s)
:以 String 型变量作为参数创建 Integer 对象。
实例如下:
// 以 int 型变量作为参数创建 Integer 对象
Integer num = new Integer(3);
// 以 String 型变量作为参数创建 Integer 对象
Integer num = new Integer("8");
4.1.2 常用方法
byte byteValue()
:以 byte 类型返回该 Integer 的值;int compareTo(Integer anotherInteger)
:在数值上比较两个 Integer 对象。如果这两个值相等,则返回 0;如果调用对象的数值小于 anotherInteger 的数值,则返回负值;如果调用对象的数值大于 anotherInteger 的数值,则返回正值;boolean equals(Object obj)
:比较此对象与指定对象是否相等;int intValue()
:以 int 类型返回此 Integer 对象;int shortValue()
:以 short 类型返回此 Integer 对象;toString()
:返回一个表示该 Integer 值的 String 对象;static Integer valueOf(String str)
:返回保存指定的 String 值的 Integer 对 象;int parseInt(String str)
:返回包含在由 str 指定的字符串中的数字的等价整数值。
更多常用方法请翻阅官方文档。
4.1.3 常用常量
MAX_VALUE
: 表示 int 型可取的最大值;MIN_VALUE
: 表示 int 型可取的最小值;SIZE
:表示以二进制补码形式表示 int 值的位数;TYPE
: 表示基本类型 Class 实例。
这些常量的使用实例如下: