Exception和Error有什么区别?
Exception和Error都有一个共同的父类Throwable.
Exception是程序本身可以处理的异常, 可以通过catch来进行捕获。
Exception又可分为受检查异常和不受检查异常。受检查异常必须处
理, 不受检查异常可以不处理。
Error属于程序无法处理的错误, 我们没有办法通过catch来捕获, 也
不建议通过catch捕获。像Java虚拟机运行错误, 虚拟机内存不够错误,
类定义错误等。这些异常发生时, java虚拟机一般会选择线程终止。
受检查异常(Checked Exception)和不受检查异常(Unchecked Exception)的区别?
受检查异常就是java代码在编译过程中能识别的异常, 可以通过catch
和throws关键字处理。除了RuntimeException及其子类, 其它的异常
都属于受检查异常。常见的受检查异常有IO异常, SQL异常等。
不受检查异常就是像RuntimeException及其子类都属于不受检查异常,
常见的有空指针异常, 数组下标索引越界异常, 类型转换异常等。
final, finally, finalize的区别?
final修饰属性, 方法, 类, 分别表示属性不可变, 方法不可覆盖
类不可继承
finally是异常处理语句结构的一部分, 表示总是执行。
finalize是Object中的一个方法, 在垃圾收集器执行的时候会调用
回收对象的此方法,可以覆蓋此方法提供垃圾收集时的其他资源回收,
例如关闭文件等。但是jvm不保证此方法总被调用。