异常、IO和NIO(Java)
文章目录
Java异常面试题
Java中异常分为哪两种?
编译时异常和运行时异常。
异常的处理机制有哪几种?
- 异常捕捉:try…catch…finally。
- 异常抛出:throws。
如何自定义一个异常?
继承一个异常类,通常是Exception或者RuntimeException。
try…catch…finally,try里面有return,finally还执行吗?
执行,并且finally的执行早于try里的return。
说说Exception与Error包结构?
Java可抛出的结构分为三种类型:被检查的异常(CheckedException)、运行时异常(RuntimeException)和错误(Error)。
throw和throws的区别?
- 位置不同:throws用在函数上,后面跟的是异常类,可以跟多个;而throw用在函数内,后面跟的是异常对象。
- 功能不同:throws用来声明异常,让调用者知道该功能可能出现的问题,可以给出预先的处理方式。而throw抛出具体的问题对象,执行到throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者;throws表示出现异常的一种可能性,并不一定会发生这些异常。而throw则是抛出了异常,执行了throw则一定抛出了某种异常对象;两者都是消极处理异常的方式,只是抛出后者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
Error和Exception的区别?
- Error和Exception都是java错误处理机制的一部分,都继承了Throwable类。
- Exception表示的异常,异常可以通过程序来捕捉,或者优化程序来避免。
- Error表示的是 系统错误 ,不能通过程序来进行错误处理。
Java中的IO和NIO面试题
说说Java中的IO流?
- 按照流的流向来划分,可以分为输入流和输出流。
- 按照操作单元划分,可以分为字节流和字符流。
- 按照流的角色划分,可以分为节点流和处理流。
Java的IO流都是从如下四个抽象基类派生出来的:
- InputStream/Reader:所有的输入流的基类,前者是字节输入流,后者是字符输入流。
- OutputStream/Writer:所有输出流的基类,前者是字节输出流,后者是字符输出流。
Java IO和NIO的区别?
NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套是网络编程NIO。
字节流和字符流的区别?
以字节为单位的输入输出数据,字节流按照8位传输;以字符为单位输入输出,字符流按照16位传输。
文章作者 P1n93r
上次更新 2020-06-11