浅谈AutoCloseable接口

一 概述

最近在查看 Android 源码时候发现有些类实现了 AutoCloseable 接口,这个接口很生疏,所以搜了下资料,学习了下,下面做个总结。

二 AutoCloseable接口由来

从AutoCloseable 的注释可知它的出现是为了更好的管理资源,准确说是资源的释放,当一个资源类实现了该接口 close 方法,在使用 try-catch-resources 语法创建的资源抛出异常后,JVM 会自动调用 close 方法进行资源释放,当没有抛出异常正常退出 try-block 时候也会调用 close 方法。像数据库链接类 Connection,io 类 InputStream 或 OutputStream 都直接或者间接实现了该接口。

2.1 使用AutoCloseable之前资源管理方式

在这里插入图片描述
如上代码创建了两个资源,在try-catch-finally的finally里面进行手动进行资源释放,释放时候还需要进行catch掉异常,这几乎是经典资源使用的方式,那么既然资源管理都是一个套路,那么为何不做到规范里面那?所以AutoCloseable诞生了。

2.2 使用AutoCloseable进行资源管理

在这里插入图片描述
如上图使用jdk1.7新增的try-catch-resources语法在try的()内部创建资源,创建的资源在退出try-block时候会自动调用该资源的c

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值