Java 面试题:异常体系与 IO/NIO

一、异常体系

Throwable 分 Error(OOM 等系统级,不捕获)与 Exception。Exception 中 RuntimeException 非受检(空指针、越界),其余为受检(IOException,必须处理)。

二、try-with-resources

try (BufferedReader br = new BufferedReader(new FileReader("a.txt"))) {
    return br.readLine();
} catch (IOException e) { e.printStackTrace(); }

实现 AutoCloseable 的资源自动关闭,优于 finally,避免泄漏。

三、IO 与 NIO

维度 IO NIO
模型 流式、阻塞 通道+缓冲、可选非阻塞
日常 Buffered 流够用 Files 工具类方便

面试常问:Error 与 Exception 区别、受检异常处理义务、try-with-resources 优势。业务代码务必别吞异常(空 catch)。