java基础:Object类和Objects工具类的介绍

1.Object

1.说明:
Object类是所有类,数组,枚举类的父类,java允许把任何类型的对象赋给Object类型的变量。当定义一个类时没有使用extends为它显式指定父类,则该类默认继承Object父类

2.Object类的常用方法:

1.boolean equals(Object obj): 判断该类与该对象是否是同一个对象

2.protected void finalize():当系统中没有引用变量到该对象时,清理资源

3.Class<?>getClass():返回该对象运行时的类

4.int hashCode():返回该对象的hashCode值

5.Strint toString():返回该对象的字符串显示,用于返回表述该对象信息的字符串对象

 

3.如何实现对象的自我克隆?(clone())

3-1:该方法的效率是copy的两倍以上,但是为浅拷贝(只会拷贝对象内部的值,而不会拷贝对象本身)

3-2:步骤:

*自定义实现Cloneable接口(标记接口)

*自定义类实现clone()方法

*返回super.clone

举个栗子:

public class Address {
    String detail;
    public  Address(String detail){
        this.detail=detail;
    }
}

public class User implements Cloneable{
    int age;
    Address address;
    public User(int age){
        this.age=age;
        address=new Address("my address");
    }
    public User clone() throws CloneNotSupportedException {
        return (User) super.clone();
    }
}
 class UserTest{
    public static void main(String[]args) throws CloneNotSupportedException {
        User u1=new User(20);
        User u2=u1.clone();
        System.out.println(u1==u2);
        System.out.println(u1.address==u2.address);

    }
}

/**
输出结果:false(浅拷贝) true(数值相同)
*/

 

objects工具类

1.用途:

提供工具方法来操作对象,这些方法可以防止空指针,实现“空指针安全”

 

举个栗子

import java.util.Objects;

public class ObjectUtils {
    static ObjectUtils obj;
    public static void main(String[]args){
        //返回hashCode
        System.out.println(Objects.hashCode(obj));
        /**
            如果对象为null,返回null(不会产生空指针异常)
           */
        System.out.println(Objects.toString(obj));
        /**
            对方法的形参进行校验
         * 传入参数不为null,返回参数本身(不会产生空指针异常 自动报错)
         * */
        System.out.println(Objects.requireNonNull(obj,"obj参数不能为空"));
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值