1.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
Overload是重载,override是重写
重载 | 重写 |
---|---|
在一个类中,写一个已经存的方法名,但是传的参数却不一样,实现方式也不一样 | 是子类继承了父类方法后,将父类方法的实现方式重写 |
重载的方法是可以改变返回值的类型的
2.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()?
Set中的元素不能重复,使用iterator()方法区分重复,使用equals方法判断。
3.error和exception有什么区别?
error 是指正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序处于非正常的、不可恢复的状态。既然是非正常情况,不便于也不需要捕获。常见的比如OutOfMemoryError之类都是Error的子类。
exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理
4.给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException,
BufferOverflowException, BufferUnderflowException,
CannotRedoException, CannotUndoException,
ClassCastException, CMMException,
ConcurrentModificationException, DOMException,
EmptyStackException, IllegalArgumentException,
IllegalMonitorStateException, IllegalPathStateException,
IllegalStateException, ImagingOpException,
IndexOutOfBoundsException, MissingResourceException,
NegativeArraySizeException, NoSuchElementException,
NullPointerException, ProfileDataException,
ProviderException, RasterFormatException, SecurityException,
SystemException, UndeclaredThrowableException,
UnmodifiableSetException, UnsupportedOperationException
5.启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程就绪状态,以后可以被调度为运行状态,一个线程必须关联一些具体的执行代码,run()方法是该线程所关联的执行代码。