Java中如何通过try优雅地释放资源?

栏目: IT技术 · 发布时间: 5年前

内容简介:时间紧迫,长话短说,今天,小明给大家同步一个知识点,使用其实,在JDK 7就已经引入了对如何才能使用这个自动关闭资源的骚操作呢?我们只需要在try内声明和初始化资源即可,如下所示:

时间紧迫,长话短说,今天,小明给大家同步一个知识点,使用 try-with-resources 来优雅地关闭资源。

1. 背景

其实,在JDK 7就已经引入了对 try-with-resources 的支持,它的主要作用就是解放小明和小明小伙伴们的双手,帮助我们自动释放使用过的资源(比如输入、输出流)。

2. 例子

如何才能使用这个自动关闭资源的骚操作呢?我们只需要在try内声明和初始化资源即可,如下所示:

Java中如何通过try优雅地释放资源?

这样,当我们写入文件时,只需要将心思放在输入的内容就行啦。

3.使用try-with-resources的好处

在很久很久以前,你是不是和小明一样每每操作输入流、输出流的时候,用的都是 try-catch-finally 代码块?

现在,答应我好嘛,作为小明的小伙伴,看完这篇文章后,再写代码时,不要再将就,务必使用 try-with-resources 会更小明(优雅)一些。

接下来,我们简单地做个比较:

之前的小明

Java中如何通过try优雅地释放资源?

点评

整体感觉很传统,很冗长。

现在的小明

Java中如何通过try优雅地释放资源?

点评

整体感觉很轻巧,很优雅。

4. 还可以控制多个资源哦

如果我们想一边控制输入、一边控制输出怎么办?

通通放进去!如图所示

Java中如何通过try优雅地释放资源?

5.幕后功臣:Closeable

为什么把资源放进 try-with-resources ,我们就可以束手旁观,高枕无忧呢?原来,要想合法进去 try-with-resources ,不被报警,是需要门票的:实现 CloseableAutoCloseable 接口,并重写 close 方法。就像这样:

Java中如何通过try优雅地释放资源?

6.多个资源的情况下如何顺序关闭呢?

剧透:先创建的资源,最后关闭。

这个故事是这样讲的:小明和小红一起打王者荣耀……

小明:

Java中如何通过try优雅地释放资源?

小红:

Java中如何通过try优雅地释放资源?

全军出击:

Java中如何通过try优雅地释放资源?

故事纵览:

Java中如何通过try优雅地释放资源?

提问:结局是不是和剧透一致?

7. 补充

我们使用 try-with-resources 的时候不仅可以优雅地释放资源,而且还可以传统一些,照常使用 catchfinally 哦。

8. 总结

经过小明这么一番生动的讲解:

你是否知道了什么是 try-with-resources

你是否知道了如何用 try-with-resources 替换 try-catch-finally

你是否知道了 AutoCloseable 构建自定义资源以及关闭资源的顺序?

附Github源码地址: https://github.com/WhenCoding/coder-xiaoming


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

最优化导论

最优化导论

Edwin K. P. Chong、Stanislaw H. Zak / 孙志强、白圣建、郑永斌、刘伟 / 电子工业出版社 / 2015-10 / 89.00

本书是一本关于最优化技术的入门教材,全书共分为四部分。第一部分是预备知识。第二部分主要介绍无约束的优化问题,并介绍线性方程的求解方法、神经网络方法和全局搜索方法。第三部分介绍线性优化问题,包括线性优化问题的模型、单纯形法、对偶理论以及一些非单纯形法,简单介绍了整数线性优化问题。第四部分介绍有约束非线性优化问题,包括纯等式约束下和不等式约束下的优化问题的最优性条件、凸优化问题、有约束非线性优化问题的......一起来看看 《最优化导论》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具