Object类中的方法
Posted 小布丁value
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object类中的方法相关的知识,希望对你有一定的参考价值。
Object类中的方法
Object类中的方法
1.clone():
实现clone()方法必须实现Cloneable接口
看一下源码:
@return a clone of this instance.
* @throws CloneNotSupportedException if the object's class does not
* support the {@code Cloneable} interface. Subclasses
* that override the {@code clone} method can also
* throw this exception to indicate that an instance cannot
* be cloned.
* @see java.lang.Cloneable
*/
protected native Object clone() throws CloneNotSupportedException;
大概意思就是 :
如果对象的类不支持Cloneable接口,。子类
重写{@code clone}方法的 *抛出此异常以指示实例也无法被克隆。
浅拷贝与深拷贝
浅拷贝与深拷贝;
如果拷贝后于拷贝前的变量存在内存共享,则为浅拷贝,没有则 为深拷贝。
2.getClass()
:获取当前类的Class对象,运行时的对象,保存了当前类的类信息。
3.toString()
获取当前对象的类型@地址
地址使用hashcode值来表示的
4.equals:
在父类(Object)中和 相同
子类重写equals方法
""比较的是地址
"equals"不能做基本数据类型的比较。默认比较地址,重写比较 内容
5.finalize():
用于资源释放,当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法
6.hashCode()
equals方法和重写hashCode()
p1.equals(p2) ->true 可以推出来hashCode值相等
p1.hashCode() == p2.hashCode 推不出来两者equals
参考文献https://blog.csdn.net/Rex_WUST/article/details/95739535
7.wait()
线程等待,并释放锁,必须放在同步代码块中,否则汇报IllegalMonitorStateException
(违反
监控器状态异常)。
notify()
用来随机选取一个处于等待池的线程进入锁池去竞争获取锁地机会
notifyAll()
让所有处于等待池的线程全部进入锁池去竞争获取锁的机会
以上是关于Object类中的方法的主要内容,如果未能解决你的问题,请参考以下文章