Java基础知识的三十个经典问答
19、sleep()和wait()的区别?
sleep是线程类(thread)的方法。导致此线程暂停执行之地昂时间,给执行的机会给其他线程,但是监控状态依然保持,到时候后自动回复,调用sleep不会释放对象锁。
wait是object类的方法,对此对象发出wait方法导致本线程放弃对象锁,进入等待此对象的的呢古代锁定池,只有针对此对象发出notify方法(或者notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
20、数组有没有length()这个方法?String有没有length()这个方法?
数组没有length()这个方法,有length方法。
String有length()方法。
21、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
方法的重写OVerriding和重载Overloading是Java多态的不同表现,
重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现,
如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Voerriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被屏蔽了,如果在一个类中定义了多个同名的方法,他们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overriding),Overriding的方法是可以改变返回值的类型。
22、Set里的元素是不是能够重复的,那么用什么方法来区分重复与否呢?使用==还是用equals()?他们有什么区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()方法是判断两个Set是否相等。
equals()和==方法决定引用值是否指向同一个对象,equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
23、error和exception 的区别
error表示恢复不是不可能但是很困难的情况下的一种严重问题。比如说内存溢出,不可能指望程序能处理之中情况。
exception表示一种设计或实现问题。也就是说,他表示如果程序运行正常,从不会发生的情况。
24、abstract class和interface有什么区别?(抽象类与接口的区别)
声明方法的存在不去实现他的类被叫做抽象类(abstrct class),它用于要创建一个体现某些基本行为