包装类共同点

.所有包装类都重写了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为每个原始数据类型提供了对应的包装类,这些包装类具有以下共同点:

  1. 实现Serializable接口:所有的包装类都实现了java.io.Serializable接口,这意味着它们可以被序列化和反序列化。

  2. 实现Comparable接口:除了Character类之外,所有的包装类都实现了java.lang.Comparable接口,允许对象进行自然排序。

  3. 提供构造函数:每个包装类都提供了一个接受相应原始数据类型参数的构造函数,用于创建包装类实例。

  4. 提供静态方法valueOf():每个包装类都有一个静态方法valueOf(),它接受一个String类型的参数,并将其转换为相应的原始数据类型。

  5. 提供parse方法:大多数包装类提供了一个parseXxx()方法,用于将字符串解析为原始数据类型,其中Xxx代表原始数据类型的名称。

  6. 提供toXxxString()方法:每个包装类都有一个toXxxString()方法,将包装类对象转换为String表示形式。

  7. 提供静态字段MIN_VALUE和MAX_VALUE:除了BooleanCharacter之外,每个包装类都有一个静态字段MIN_VALUEMAX_VALUE,分别表示该类型的最小值和最大值。

  8. 提供类型转换方法:包装类提供了将对象转换回原始数据类型的静态方法,如byteValue()intValue()doubleValue()等。

  9. 单例模式:对于BooleanCharacter类,Java使用单例模式,即对于特定的值(如truefalse'\u0000''\uffff'),它们只创建一个实例。

  10. 自动装箱和拆箱:Java 5 引入了自动装箱(Autoboxing)和拆箱(Unboxing)机制,允许自动将原始数据类型转换为对应的包装类对象,反之亦然。

这些共同点使得Java的包装类在处理原始数据类型时更加灵活和方便。

posted @   蜡笔小新Belief  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示