[Java]Object有哪些公⽤⽅法?
1.clone⽅法
保护⽅法,实现对象的浅复制,只有实现了Cloneable接⼝才可以调⽤该⽅法,否则抛出CloneNotSupportedException异常。
主要是JAVA⾥除了8种基本类型传参数是值传递,其他的类对象传参数都是引⽤传递,我们有时候不希望在⽅法⾥讲参数改变,这是就需要在类中复写clone⽅法。
2.getClass⽅法
final⽅法,获得运⾏时类型。
3.toString⽅法
该⽅法⽤得⽐较多,⼀般⼦类都有覆盖。
4.finalize⽅法
该⽅法⽤于释放资源。因为⽆法确定该⽅法什么时候被调⽤,很少使⽤。
5.equals⽅法
该⽅法是⾮常重要的⼀个⽅法。⼀般equals和==是不⼀样的,但是在Object中两者是⼀样的。⼦类⼀般都要重写这个⽅法。
equals()方法6.hashCode⽅法
该⽅法⽤于哈希查,可以减少在查中使⽤equals的次数,重写了equals⽅法⼀般都要重写hashCode⽅法。这个⽅法在⼀些具有哈希功能的Collection中⽤到。
⼀般必须满⾜obj1.equals(obj2)true。可以推出obj1.hash- Code()obj2.hashCode(),但是hashCode相等不⼀定就满⾜equals。不过为了提⾼效率,应该尽量使上⾯两个条件接近等价。
如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加⼊进去。
7.wait⽅法
wait⽅法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()⽅法⼀直等待,直到获得锁或者被中断。wait(long timeout)设定⼀个超时间隔,如果在规定时间内没有获得锁就返回。
调⽤该⽅法后当前线程进⼊睡眠状态,直到以下事件发⽣。
(1)其他线程调⽤了该对象的notify⽅法。
(2)其他线程调⽤了该对象的notifyAll⽅法。
(3)其他线程调⽤了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出⼀个InterruptedException异常。
8.notify⽅法
该⽅法唤醒在该对象上等待的某个线程。
9.notifyAll⽅法
该⽅法唤醒在该对象上等待的所有线程。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论