JavaSE(十一)Object类

常用类型 Object String 8个包装类型 Math Class反射

Object类

  • java.lang包 根基类型,所有的对象都拥有Object中的方法

  • JDK提供好的常用类型;

1,toString()方法

/**
     * toString方法 返回 对象的字符串形式:对这个对象的一个描述
     */
    private static void method1() {
        Student stu1 = new Student(2001, "t2");
        // toString方法 返回 对象的字符串形式:对这个对象的一个描述
        System.out.println(stu1.toString());
        //直接打印对象名 默认去调用 toString方法
        System.out.println(stu1);
        String str = "java";
        System.out.println(str);
​
        Object ob2 = "java2";
        System.out.println(ob2.toString());
    }

2,equals方法

/**
     * equals方法 用来比较两个对象是否相等
     */
    private static void method2() {
        Student stu1 = new Student(2001, "t2");
        Student stu2 = stu1;
        //  两个引用如果使用双等号比较 比较的是两个引用是否指向同一个对象;
        System.out.println(stu1 == stu2);
        //equals方法用来比较两个对象是否相等;
        System.out.println(stu1.equals(stu2));
​
        String str1 = new String("java");
        String str2 = new String("Java");
        System.out.println("str1==str2: " + (str1 == str2));
        //String的equals方法只比较字符内容 是否一一相等
        System.out.println("equals: " + str1.equals(str2));
​
        Student stu3 = new Student(2001, "t2");
        Student stu4 = new Student(2002, "t2");
        System.out.println(stu3 == stu4);
        System.out.println(stu3.equals("java"));
    }

3,hashCode方法

/**
     * hashCode方法,返回对象的哈希值
     * native修饰的方法是本地方法 本地方法的实现由本地语言C,C++语言实现
     */
    private static void method3() {
        //哈希值:一个对象的哈希值 好像对象的身份证号 具有唯一性
        //不同的对象 应该具有不同的哈希值 ;
        // 相同的对象 应该具有相同的哈希值 ;
        Student stu1 = new Student(2001, "t2");
        Student stu2 = new Student(2001, "t3");
        System.out.println(stu1.hashCode());
        System.out.println(stu1.hashCode());
        //相等
        System.out.println(stu1.equals(stu2));
        System.out.println(stu2.hashCode());
    }

4,clone方法

// Cloneable标记接口 告诉JVM可以被克隆
public class Dog implements Cloneable {
    private int id;
    private String name;
​
    public Dog() {
    }
​
    public Dog(int id, String name) {
        this.id = id;
        this.name = name;
    }
​
    @Override
    public String toString() {
        return "Dog{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
​
    public Object getNewDog() {
        try {
            return this.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return null;
    }
}

测试代码

 /**
     * 测试克隆
     */
    private static void method4() {
        Dog dog = new Dog(101, "dog1");
        Object newDog = dog.getNewDog();
        System.out.println(newDog);
    }

5,工具类

/**
     * Objects工具类
     */
    private static void method6() {
        //Objects是 给Object提供的工具类,为了优化空指针异常的情况
        Objects obj;
        Student stu1 = new Student(2001, "t2");
        Student stu2 = new Student(2001, "t3");
​
      /*  if (stu1 != null) {
            System.out.println(stu1.equals(stu2));
        }*/
        System.out.println(stu1.hashCode());
        System.out.println(Objects.equals(stu1, stu2));
        System.out.println(Objects.hashCode(stu1));
    }
​
    private static void method5(String str) {
        // requireNonNull 用来做 非空校验
        Objects.requireNonNull(str);
        //对参数的有效性校验
        if (str == null) {
            throw new NullPointerException("");
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值