Java通过try释放资源的方法

 更新时间:2020年04月13日 11:48:03   作者:Coder小明  
这篇文章主要介绍了Java通过try释放资源的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

1. 背景

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

2. 例子

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

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

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

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

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

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

之前的小明

点评

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

现在的小明

点评

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

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

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

通通放进去!如图所示

5.幕后功臣:Closeable

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

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

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

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

小明:

小红:

全军出击:

故事纵览:

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

7. 补充

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

8. 总结

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

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

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

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

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

到此这篇关于Java通过try释放资源的方法的文章就介绍到这了,更多相关java try释放资源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java开发必备知识之数组详解

    Java开发必备知识之数组详解

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同.本篇文章为大家整理了Java最全关于数组的知识点,并给出其对应的代码,需要的朋友可以参考下
    2021-06-06
  • SpringBoot整合Minio实现上传文件的完整步骤记录

    SpringBoot整合Minio实现上传文件的完整步骤记录

    MinIO是一个基于Apache License v2.0开源协议的对象存储服务,它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,下面这篇文章主要给大家介绍了关于SpringBoot整合Minio实现上传文件的完整步骤,需要的朋友可以参考下
    2022-05-05
  • 用Java验证pdf文件的电子章签名

    用Java验证pdf文件的电子章签名

    这篇文章主要介绍了如何用Java验证pdf文件的电子章签名,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • MyBatis 多表联合查询及优化方法

    MyBatis 多表联合查询及优化方法

    大家都知道Hibernate 是全自动的数据库持久层框架,它可以通过实体来映射数据库,通过设置一对多、多对一、一对一、多对多的关联来实现联合查询,接下来通过本文给大家介绍MyBatis 多表联合查询及优化,需要的朋友可以参考下
    2022-08-08
  • Java注解详解之@Override注解

    Java注解详解之@Override注解

    这篇文章主要给大家介绍了关于Java注解之@Override注解的相关资料,@Override是Java中的一个注解,表示一个方法是重写(Override)了父类中的方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Java实现雪花算法的原理和实战教程

    Java实现雪花算法的原理和实战教程

    这篇文章主要介绍了Java实现雪花算法的原理和实战教程,本文通过语言表述和代码的实现讲解了该项算法,,需要的朋友可以参考下
    2021-06-06
  • IDEA如何配置本地tomcat启动项目

    IDEA如何配置本地tomcat启动项目

    这篇文章主要介绍了IDEA如何配置本地tomcat启动项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java Collections工具类中常用算法解析

    Java Collections工具类中常用算法解析

    在软件开发中,算法是非常重要的一部分,它们可以提供高效的数据处理和操作,这篇文章主要为大家介绍了Collections 工具类集合框架中常用算法,感兴趣的可以了解一下
    2023-06-06
  • 挑战4道Java试题

    挑战4道Java试题

    这篇文章主要为大家分享了4道Java基础题,帮助大家巩固基础知识,夯实java基础技能,感兴趣的朋友快点挑战
    2015-12-12
  • java 使用poi动态导出的操作

    java 使用poi动态导出的操作

    这篇文章主要介绍了java 使用poi动态导出的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论