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 对象。
实例如下:
package com.caq.exception; public class Test2 { public static void main(String[] args) { //以int变量为参数创建对象 Integer integer = new Integer(3); //以字符串类型作为参数创建对象 Integer integer1 = new Integer("5"); } }
4.1.2 常用方法
byte byteValue():以 byte 类型返回该 Integer 的值;
int compareTo(Integer1 Integer2):在数值上比较两个 Integer 对象。如果这两个值相等,则返回 0;如果调用对象的数值小于 Integer2 的数值,则返回负值;如果调用对象的数值大于 Integer2的数值,则返回正值;
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 实例。
package com.caq.exception; public class Test2 { public static void main(String[] args) { int a = Integer.MAX_VALUE; int b = Integer.MIN_VALUE; int c = Integer.SIZE; System.out.println("int类型可取的MAX_VALUE是"+a); System.out.println("int类型可取的MIN_VALUE是"+b); System.out.println("int类型可取的二进制位数是"+c); } }
运行结果:
int类型可取的MAX_VALUE是2147483647 int类型可取的MIN_VALUE是-2147483648 int类型可取的二进制位数是32