基本介绍
基本类型 | 包装类 | 描述 |
---|---|---|
int |
Integer |
整数类型 |
long |
Long |
长整数类型 |
float |
Float |
单精度浮点数类型 |
double |
Double |
双精度浮点数类型 |
boolean |
Boolean |
布尔类型 |
char |
Character |
字符类型 |
byte |
Byte |
字节类型 |
short |
Short |
短整数类型 |
包装类的主要作用:
- 将基本类型转换为对象
- 提供额外的实用方法
- 允许null值
- 在集合中使用
Java 5引入了自动装箱和拆箱,简化了基本类型和包装类之间的转换。
自动装箱和自动拆箱
自动装箱(Autoboxing)是将基本数据类型自动转换为对应的包装类的过程。例如:
java
Integer num = 100; // 自动装箱,int 转换为 Integer
//Integer num = new Integer(10);
//Integer num = **Integer.valueOf(name)**
以下是自动装箱的流程图:
是 否 开始 遇到需要对象的地方使用基本类型 是否需要自动装箱? 调用对应包装类的valueOf方法 创建包装类对象 将基本类型值存入对象 继续执行 结束
这个流程图展示了Java中自动装箱的过程,从遇到需要对象的地方使用基本类型开始,到最终创建包装类对象并存储值的整个过程。
自动拆箱(Unboxing)是将包装类自动转换为对应的基本数据类型的过程。例如:
java
int value = new Integer(50); // 自动拆箱,Integer 转换为 int
int i = integer.intValue();
这些特性使得在Java中使用基本类型和包装类变得更加方便和灵活。
以下是自动拆箱的流程图:
是 否 开始 遇到需要基本类型的地方使用包装类对象 是否需要自动拆箱? 调用包装类对象的xxxValue方法 获取基本类型值 继续执行 结束
这个流程图展示了Java中自动拆箱的过程,从遇到需要基本类型的地方使用包装类对象开始,到最终获取基本类型值的整个过程。
注意事项:
- 自动装箱和拆箱可能会影响性能,特别是在循环中频繁使用时。
- 在比较包装类对象时,应使用equals()方法而不是==操作符。
- 包装类对象可以为null,而基本类型不能,这可能导致NullPointerException。
包装类的继承关系
Java中的包装类具有以下继承关系:
Object Number Integer Long Float Double Short Byte Boolean Character
这个继承关系图展示了:
- 所有的包装类都直接或间接继承自Object类。
- 数值类型的包装类(Integer, Long, Float, Double, Short, Byte)都继承自Number抽象类。
- Boolean和Character类直接继承自Object类。
理解这种继承关系有助于我们更好地使用这些类,特别是在涉及多态和类型转换的场景中。
包装类的常用方法
以下是每种包装类的常用方法:
包装类 | 常用方法 | 描述 |
---|---|---|
Integer | parseInt(String s) |
将字符串解析为int值 |
valueOf(int i) |
返回表示指定int值的Integer实例 | |
intValue() |
以int形式返回Integer的值 | |
Long | parseLong(String s) |
将字符串解析为long值 |
valueOf(long l) |
返回表示指定long值的Long实例 | |
longValue() |
以long形式返回Long的值 | |
Float | parseFloat(String s) |
将字符串解析为float值 |
valueOf(float f) |
返回表示指定float值的Float实例 | |
floatValue() |
以float形式返回Float的值 | |
Double | parseDouble(String s) |
将字符串解析为double值 |
valueOf(double d) |
返回表示指定double值的Double实例 | |
doubleValue() |
以double形式返回Double的值 | |
Boolean | parseBoolean(String s) |
将字符串解析为boolean值 |
valueOf(boolean b) |
返回表示指定boolean值的Boolean实例 | |
booleanValue() |
以boolean形式返回Boolean的值 | |
Character | isDigit(char ch) |
判断指定字符是否为数字 |
isLetter(char ch) |
判断指定字符是否为字母 | |
toLowerCase(char ch) |
将字符转换为小写 | |
Byte | parseByte(String s) |
将字符串解析为byte值 |
valueOf(byte b) |
返回表示指定byte值的Byte实例 | |
byteValue() |
以byte形式返回Byte的值 | |
Short | parseShort(String s) |
将字符串解析为short值 |
valueOf(short s) |
返回表示指定short值的Short实例 | |
shortValue() |
以short形式返回Short的值 |
这些方法是每种包装类中最常用的一些方法。它们主要用于类型转换、值解析和基本操作。在实际编程中,这些方法可以大大简化我们的代码并提高效率。