Closeable和AutoCloseable有哪些区别

发布时间:2021-06-16 14:16:27 作者:小新
来源:亿速云 阅读:180

这篇文章主要介绍了Closeable和AutoCloseable有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

导读:我们知道,在java中jvm虚拟机会自动去调用gc(垃圾回收器)去回收堆中没有被引用的对象,至于什么时候回收,是不确定的,同时有些是用到其他资源,jvm也不会进行回收,类似Io流中的FileInputStream使用到了硬盘资源,垃圾回收器是不会去回收的,因此,必须手动关闭掉。我们进行手动的编写close()方法进行关闭,然而,每次这些写会造成代码冗余不优雅,JDK中对于释放资源有Closeable和AutoCloseable可以使用,以下为详解。、

Closeable

Closeable源码

Closeable和AutoCloseable有哪些区别

使用close需要注意

在java.io.包下 InputStream,outputStream, Reader, Writer 等基类都实现了Closeable接口,因为每次的IO操作结束之后都要去释放资源。

AutoCloseable

AutoCloseable接口位于java.lang包下,从JDK1.7开始引入。

由于位于java.lang包下,可以针对于所有实现该接口的流,而closable本身也实现了该接口,java的io流间接性的可以自动关闭接口,也就是说从jdk1.7开始,不需要手动去关流。

AutoCloseable源码

Closeable和AutoCloseable有哪些区别

{try}-with-resources的使用注意

在1.7之前,我们通过try{} finally{} 在finally中释放资源。

Closeable和AutoCloseable有哪些区别

很显然是很繁琐的。jdk1.7之后采用{try}-with-resources的解释

将可能抛出异常的代码块放入到try块中,在try结束的时候,会自动将这些资源关闭(调用close方法)。

{try}-with-resources关键点

带资源的try语句的3个关键点:

Closeable和AutoCloseable有哪些区别

这样看起来是不是简单,舒服很多

感谢你能够认真阅读完这篇文章,希望小编分享的“Closeable和AutoCloseable有哪些区别”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

推荐阅读:
  1. redis和map有哪些区别
  2. id和class有哪些区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jdk

上一篇:Java 中有哪些引用类型

下一篇:C#写文件处理操作有哪些方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》