.所有包装类都重写了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的包装类在处理原始数据类型时更加灵活和方便。
标签:Java,共同点,包装,equals,对象,类型,原始数据 From: https://www.cnblogs.com/ZWJ7671277/p/18344135