object类

Object类

1.getClass()方法:获取对象的类型

示例代码

public class Test {
    public static void main(String[] args) {
       Me me = new Me("qiudajiang",13);
       Me me1 = new Me("qiudashuai",11);
       //判断me和me1是不是同一个类型
        Class aClass = me.getClass();
        Class bClass = me1.getClass();
        if (aClass == bClass){
            System.out.println("me和me1类型相同");
        } else {
            System.out.println("不是同一个类型");
        }
    }
}

2.hashCode方法:返回该对象的哈希码值(根据对象的地址或数字或字符串使用hash算法计算出来的int类型的数值,一般情况下相同对象返回相同哈希码)

实例代码

public class Test {
    public static void main(String[] args) {

       Me me = new Me("qiudajiang",13);
       Me me1 = new Me("qiudashuai",11);//hashCode()方法
        System.out.println(me.hashCode());
        System.out.println(me1.hashCode());
        Me me2 = me1;
        System.out.println(me2.hashCode());
    }
}

3.toString()方法:返回该对象的字符串表示

示例代码

 System.out.println(me.toString());
 System.out.println(me1.toString());

4.equals()方法:比较两个对象地址是否相同,该方法可重写,改变比较两个对象的内容

实例代码

如要实现若内容相同则返回true,重写equals()方法,代码如下:

 public boolean equals(Object obj){
        //1.判断两个对象是否是同一个引用
        if (this == obj){
            return true;
        }
        //2.判断obj是否null
        if (obj == null){
            return false;
        }
        //3.判断是否是同一个类型
//        if (this.getClass() == obj.getClass()){
//        }
        if (obj instanceof Me){
            //4.强制类型抓换
            Me me = (Me)obj;
            //5.比较属性
            if (this.name.equals(me.getName()) && this.age == ((Me) obj).getAge()){
                return true;
            }
        }
        return false;
    }

测试代码:

public class Test {
    public static void main(String[] args) {

       Me me = new Me("qiudajiang",13);
       Me me1 = new Me("qiudashuai",11);
        //equals(0方法,判断两个对象地址是否相等
        System.out.println(me.equals(me1));
        Me me3 = new Me("qdj",10);
        Me me4 = new Me("qdj",10);
        System.out.println(me3.equals(me4));
    }
}

5.finalize()方法:当对象被判定为垃圾对象时,由JVM自动调用。

finalize()方法重写:

  @Override
    protected void finalize() throws Throwable {
        System.out.println("对象被回收了");
    }

测试代码:

public class Test2 {
    public static void main(String[] args) {
//        Me a = new Me("aaa",1);
//        Me b = new Me("bbb",2);
//        Me c = new Me("ccc",3);
//        Me d = new Me("ddd",4);
//        Me e = new Me("eee",5);
        new Me("aaa",1);
        new Me("bbb",2);
        new Me("ccc",3);
        new Me("ddd",4);
        new Me("eee",5);
        //回收垃圾
        System.gc();
        System.out.println("回收垃圾");
    }
}
原文地址:https://www.cnblogs.com/qiudajiang/p/13234756.html