包装类共同点
.所有包装类都重写了Object方法
我们也很容易知道Object的方法有
1.1 equals
equals 基本上用于判断当前对象和参数传入的对象是否相同,Object类的默认实现是比较地址。对于两个变量,指向同一个对象地址时,equals才会返回true,与==运算符结果相同。一般这个默认实现是不符合我们需要的比较两个对象相等,需要子类重写这个实现。以Long为例,其equals方法代码实现如下:
public boolean equals(Object obj){
if(obj instanceof Long){
return value==((Long)obj).longValue();
}
return false;
}
Java中的包装类(Wrapper Classes)是将原始数据类型(Primitive Data Types)封装成对象的类。Java为每个原始数据类型提供了对应的包装类,这些包装类具有以下共同点:
-
实现Serializable接口:所有的包装类都实现了
java.io.Serializable
接口,这意味着它们可以被序列化和反序列化。 -
实现Comparable接口:除了
Character
类之外,所有的包装类都实现了java.lang.Comparable
接口,允许对象进行自然排序。 -
提供构造函数:每个包装类都提供了一个接受相应原始数据类型参数的构造函数,用于创建包装类实例。
-
提供静态方法valueOf():每个包装类都有一个静态方法
valueOf()
,它接受一个String类型的参数,并将其转换为相应的原始数据类型。 -
提供parse方法:大多数包装类提供了一个
parseXxx()
方法,用于将字符串解析为原始数据类型,其中Xxx
代表原始数据类型的名称。 -
提供toXxxString()方法:每个包装类都有一个
toXxxString()
方法,将包装类对象转换为String表示形式。 -
提供静态字段MIN_VALUE和MAX_VALUE:除了
Boolean
和Character
之外,每个包装类都有一个静态字段MIN_VALUE
和MAX_VALUE
,分别表示该类型的最小值和最大值。 -
提供类型转换方法:包装类提供了将对象转换回原始数据类型的静态方法,如
byteValue()
、intValue()
、doubleValue()
等。 -
单例模式:对于
Boolean
和Character
类,Java使用单例模式,即对于特定的值(如true
和false
,'\u0000'
到'\uffff'
),它们只创建一个实例。 -
自动装箱和拆箱:Java 5 引入了自动装箱(Autoboxing)和拆箱(Unboxing)机制,允许自动将原始数据类型转换为对应的包装类对象,反之亦然。
这些共同点使得Java的包装类在处理原始数据类型时更加灵活和方便。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!