版本
JDK8(JDK1.8)
AutoCloseable接口重点
1.该接口只有一个close()方法,实现该接口的对象在退出try-with resources块时会自动调用close()方法
2.try-with resources用法示例
public class Test {
public static void main(String[] args) {
try(FileInputStream fileInputStream = new FileInputStream(new File("D:\\a.txt"))) {
int read = fileInputStream.read();
System.out.println((char)read);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3.实现该接口不要让close方法抛出InterruptedException,如果InterruptedException是Throwable#addSuppressed, 则可能发生运行时错误行为,会导致异常被抑制的问题
4.与java.io.Closeable的java.io.Closeable#close方法不同,此close方法不要求是幂等的。换句话说,多次调用这个close方法可能会产生一些明显的副作用, 这与Closeable.close不同,后者在多次调用时要求没有效果。
Closeable 可以看我这篇文章 Closeable