Object类的常见方法总结

我们先来看一下Object类的源码:

package java.lang;
public class Object {
	public final native Class<?> getClass()
	
	public native int hashCode()
	
	public boolean equals(Object obj)
	
	protected native Object clone() throws CloneNotSupportedException
	
	public String toString()
	
	public final native void notify()
	
	public final native void notifyAll()
	
	public final native void wait(long timeout) throws InterruptedException
	
	public final void wait(long timeout, int nanos) throws InterruptedException
	
	public final void wait() throws InterruptedException

	protected void finalize() throws Throwable { } 
}

1.getclass():native方法,用于返回运行时对象的Class方法,因为使用了final的修饰词,所以不能被继承。
2.hashCode():native方法,用于返回对象的哈希码,主要用于哈希表中,比如JDK的HashMap。
3.equals(Object obj):用于比较2个对象的内存地址是否相同,String类对该方法进行了重写,用于用户比较字符串的值是否相等。
4.clone():native方法,用于创建并返回 当前对象的拷贝。一般情况下,对于任何对象a,表达式a.clone()!=a; 表达式的结果为true(a.clone()操作后返回的a’内容和a相同,但是他们的地址不同),表达式a.clone().getClass() == a.getClass(),表达式的结果为true。
5.toString():返回类的名字。建议Object所有的子类都重写这个方法。
6.notify():native方法,因为final修饰,所以不能被重写。唤醒一个在此对象监视器上等待的的线程。如果有多个线程在等待,只会任意唤醒一个。
7.notifyAll():native方法,因为final修饰,所以不能被重写。跟notify()方法一样,唯一的区别就是会唤醒在此对象监视器上等待的所有线程。
8.wait(long timeout):native方法,因为final修饰,所以不能被重写。暂停线程的进行。timeout表示等待时间。
9.wait(long timeout, int nanos):第8个方法的重载方法,多了一个nanos参数,表示额外时间(以毫微秒为单位,范围是0~999999),所以等待时间还需要加上nanos。
10.wait():第8个方法的重载方法,这个表示一直等待,没有时间。
11.finalize():实例被垃圾回收器回收的时候触发的操作。

温馨补充:
native方法是什么意思?
native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值