JavaSE---Object
1、概述
Object常用方法:
1.1 getClass():
public final native Class<?> getClass();
返回 该对象 运行时的Class对象;
package com.an.javase;
public class HashCodeTest {
    public static void main(String[] args){
        System.out.println(new Person().getClass());
    }
    static class Person{
        private String name;
        private int age;
    }
}
结果:
class com.an.javase.HashCodeTest$Person
1.2 hashCode():
public native int hashCode();
返回该对象的哈希码值;
这个方法是为了支持java中的散列表,比如:HashMap、hashtable...
******java中 调用同一个对象的hashCode()必须 返回相同的整数;
但是,存在一个问题:有可能不同对象的hashCode()返回值相等;
1.3 equals():
public boolean equals(Object obj) {
      return (this == obj);
}
比较2个对象是否相等(内存中的地址值);
该方法规定:如果2个对象equals()返回true,则必须有相同的hashCode值;
实际业务中:需要比较不同内存对象但内容相同,也视为相同,需要重写equals();
package com.an.javase;
public class EqualsTest {
    private String name;
    private Integer age;
    @Override
    public boolean equals(Object obj) {
        if (this==obj){
            return true;
        }
        if (obj instanceof EqualsTest){
            EqualsTest equalsTest=(EqualsTest) obj;
            if (equalsTest.name.equals(this.name)){
                return true;
            }
        }
        return false;
    }
}
1.4 toString():
              public String toString() {
                    return getClass().getName() + "@" + Integer.toHexString(hashCode());
                }
对象自我描述的功能,告诉外界该对象具有的信息;
当直接将对象进行输出时,调用的是toString();
toString()返回值:类名+@+hashCode值
1.5 wait()
1.6 wait(long timeout)
1.7 wait(long timeout, int nanos)
1.8 notify()
1.9 notifyAll()
1.10 clone()
1.11 finalize():
protected void finalize() throws Throwable { }
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象;
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号