Java中异常分为哪两类,有什么区别
在Java异常中,主要分为两大类,受检异常和非受检异常。
受检异常:如果一个方法在声明过程中证明了其要有受检异常抛出,如
public void test throws Exception{}
那么,当我们的程序在调用它的时候,一定要对该异常进行处理,否则无法编译通过。
如IO异常FileNotFoundException
非受检异常:一般是运行时异常,继承自RuntimeException。在编写代码时不需要显示捕获的异常,但是如果不捕获,在运行期间发送异常就会程序中断。这种异常通常是代码原因造成的,比如空指针异常,数组越界等。
finally中的代码一定会执行吗
在通常情况下,finally的代码一定会被执行,但是有个前提
1.对应的try语句块被执行
2.程序正常运行
什么是AIO,BIO,NIO
BIO :同步阻塞I/O,当线程发出IO请求后,一直阻塞,直到缓冲区数据就绪后,再进入下一步操作
NIO:同步非阻塞I/O,当线程发出IO请求后,不阻塞,直接返回,用户线程不等待IO缓冲区。只需要定时轮询查询IO缓冲区数据是否就绪即可。
AIO:异步非阻塞IO,当线程发出IO请求后,不阻塞,直接返回,也不需要定时轮询,当IO缓冲区数据准备就绪通知调用方。