
* Class<?> getClass
* 返回对象的运行时类,返回的类对象是被表示类的static synchronized方法锁定的对象
* int hashCode()
为这个对象返回一个哈希码值。支持这种方法是为了散列表,如HashMap提供的那样
在没有修改这个对象equals方法中的比较信息时,在执行Java应用程序时,多次在同一个对象上调用该方法, hashCode方法必须始终返回相同的整数。 该整数不需要从一个应用程序的执行到相同应用程序的另一个执行保持一致。
如果根据equals(Object)方法两个对象相等,则在两个对象中的每个对象上调用hashCode方法必须产生相同的整数结果。
不要求如果两个对象根据equals(java.lang.Object)方法不相等,那么在两个对象中的每个对象上调用hashCode方法必须产生不同的整数结果。 但是,程序员应该意识到,为不等对象生成不同的整数结果可能会提高哈希表的性能。
boolean equals()
两个对象是否相等(内存地址)
自反性 :对于任何非空的参考值x , x.equals(x)应该返回true
它是对称的 :对于任何非空引用值x和y , x.equals(y)应该返回true当且仅当y.equals(x)也要返回true
传递性 :对于任何非空引用值x , y和z ,如果x.equals(y)返回true,而且y.equals(z)也返回true ,那么x.equals(z)也要返回true
它是一致的 :对于任何非空引用值x和y ,多次调用x.equals(y)始终返回true或始终返回false ,前提是没有修改这些对象中equals方法的比较信息
对于任何非空的参考值x , x.equals(null)应该返回false
Object clone()
子类克隆需要实现Cloneable接口,否则抛出异常。克隆是浅克隆,例如数组克隆数据里面的引用对象只赋值一份引用地址,而不会克隆新的对象。
String toString()
返回对象的字符串表示形式。 getClass().getName() + ‘@‘ + Integer.toHexString(hashCode()) //类名@哈希码的无符号十六进制数表示
void notify()
唤醒正在等待对象监视器的单个线程。 如果任何线程正在等待这个对象,其中一个被选择被唤醒。 选择是任意的,并且由实施的判断发生。 线程通过调用wait方法之一等待对象的监视器。
void notifyAll()
唤醒正在等待对象监视器的所有线程。 线程通过调用wait方法之一等待对象的监视器
void wait(long)
导致当前线程等待,直到另一个线程调用此对象的notify()方法或notifyAll()方法,或指定的时间已过
void wait(long,int)
导致当前线程等待,直到另一个线程调用此对象的notify()方法或notifyAll()方法,或其他一些线程中断当前线程,或一定量的实时时间
void wait()
导致当前线程等待,直到另一个线程调用该对象的notify()方法或notifyAll()方法。 换句话说,这个方法的行为就好像简单地执行呼叫wait(0)
void finalize()
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。 一个子类覆盖了处理系统资源或执行其他清理的finalize方法
* native
* native的方法
protected native Object clone() throws CloneNotSupportedException;
protected void finalize() throws Throwable { }//需要重写
public native int hashCode();
public final native Class<?> getClass();
public final native void notify();
public final native void notifyAll();
public final native void wait(long timeout) throws InterruptedException;
public final native void wait(long timeout) throws InterruptedException;
* 作用
1.作为调用本地的方法接口(JNI),去调用本地方法
2.通过调用本地方法去操作硬件。操作系统
3.使用次关键字的表名可以没有方法体
4.告知此方法为其他语言实现
/**wj**/
* equals和hashCode推荐子类重写
equals重写是因为每个类里面的比较相等一般都不一样,例如教室,需要比较楼栋楼层教室编号等等。
hashCode就相当于比较人和人的身份证(当然哈希码也会有重复),当俩对象equals返回ture,他们的哈希码应当一致。
* 方法的主要作用
* 哪些方法可以重写
finalize()
toString()
hashCode()
clone()
equals()
转载请注明来源
原文:https://www.cnblogs.com/wenjieStudy/p/13937302.html