• 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,不被报警,是需要门票的:实现CloseableAutoCloseable接口,并重写close方法。就像这样:

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

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

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

    小明:

    小红:

    全军出击:

    故事纵览:

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

    7. 补充

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

    8. 总结

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

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

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

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

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

  • 相关阅读:
    Delphi XE4 FireMonkey 开发 IOS APP 发布到 AppStore 最后一步.
    Native iOS Control Delphi XE4
    Delphi XE4 iAD Framework 支持.
    using IOS API with Delphi XE4
    GoF23种设计模式之行为型模式之命令模式
    Android青翼蝠王之ContentProvider
    Android白眉鹰王之BroadcastReceiver
    Android倚天剑之Notification之亮剑IOS
    Android紫衫龙王之Activity
    GoF23种设计模式之行为型模式之访问者模式
  • 原文地址:https://www.cnblogs.com/coderxx/p/12690161.html
Copyright © 2020-2023  润新知