数因科技Java面试题
1. java 中 sleep 方法和 wait 方法的区别?
首先sleep方法来自Thread类,线程进入sleep方法后不会释放自身的锁,sleep可以在任何地方使用,而且必须要捕获异常,由于sleep方法属于Thread类中方法,表示让一个线程进入睡眠状态,等待一定的时间之后,自动醒来进入到可运行状态,不会马上进入运行状态,因为线程调度机制恢复线程的运行也是需要时间的。
wait是object类中的方法,线程进入wait方法后会释放自身的锁,使得其他线程可以使用同步控制块或者方法,wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而且wait,notify和notifyAll不需要捕获异常 ,wait属于Object的成员方法,一旦一个对象调用了wait方法,必须要采用notify()和notifyAll()方法唤醒该进程;如果线程拥有某个或某些对象的同步锁,那么在调用了wait()后,这个线程就会释放它持有的所有同步资源,而不限于这个被调用了wait()方法的对象。
2.Java Object 类中有哪些方法?
1.clone方法
equals()方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
2.getClass方法
final方法,获得运行时类型。
3.toString方法
该方法用得比较多,一般子类都有覆盖。
4.finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
5.equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。
子类一般都要重写这个方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论