Java基础-Wrapper Classes(包装类)


基本介绍

基本类型 包装类 描述
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的值

这些方法是每种包装类中最常用的一些方法。它们主要用于类型转换、值解析和基本操作。在实际编程中,这些方法可以大大简化我们的代码并提高效率。

相关推荐
feiyangqingyun9 分钟前
Qt项目作品在苹果macos上编译运行效果/视频监控系统/物联网平台等
开发语言·qt·macos
GL-Yang40 分钟前
2025年-集合类面试题
java·面试
你不是我我41 分钟前
【Java 开发日记】我们来说一说 Redisson 的原理
java·开发语言
kk”42 分钟前
C++ stack 和 queue
开发语言·c++
Matlab仿真实验室1 小时前
基于Matlab实现双目图计算深度图
开发语言·数码相机·matlab·双目图计算深度图
李憨憨1 小时前
Java处理大型 Excel 文件(超过 100 万行)难题
java
QT 小鲜肉1 小时前
【数据结构与算法基础】05. 栈详解(C++ 实战)
开发语言·数据结构·c++·笔记·学习·算法·学习方法
老K的Java兵器库1 小时前
Collections 工具类 15 个常用方法源码:sort、binarySearch、reverse、shuffle、unmodifiableXxx
java·开发语言·哈希算法
武子康1 小时前
Java-153 深入浅出 MongoDB 全面的适用场景分析与选型指南 场景应用指南
java·开发语言·数据库·mongodb·性能优化·系统架构·nosql
rit84324992 小时前
ES6 箭头函数:告别 `this` 的困扰
开发语言·javascript·es6