当前位置: 首页 > news >正文

Java——》try-with-resource

推荐链接:
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Kafka】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】
    总结——》【Linux】
    总结——》【MongoDB】
    总结——》【Elasticsearch】

Java——》try-with-resource

  • 1.概念
  • 2.特点
  • 3.示例
    • 3.1关闭单个资源
    • 3.2关闭多个资源

1.概念

try-with-resources 是 JDK 7 中一个新的异常处理机制,它能够很容易地关闭在 try-catch 语句块中使用的资源

try-with-resources 语句确保了每个资源在语句结束时关闭

所谓的资源(resource)是指在程序完成后必须关闭的对象。所有实现了 java.lang.AutoCloseable 接口(包括实现了 java.io.Closeable 的所有对象),可以使用作为资源。

2.特点

  1. 所有实现AutoCloseable接口的类,在try()里声明该类实例的时候,在try()结束后,close()都会被自动调用,这个动作会早于finally里调用的方法。
  2. 不管是否出现异常(int i=1/0会抛出异常),try()里的实例都会被调用close()。
  3. 越晚声明的对象,会越早被close掉。

3.示例

3.1关闭单个资源

public class Test {public static void main(String[] args) {// JDK1.7、1.8写法:需要在try中声明一个新变量try (Resource res = new Resource()) {res.doSome();} catch (Exception ex) {ex.printStackTrace();}// JDK1.9写法:如果已经有一个资源是 final 或等效于 final 变量,可以在 try-with-resources 语句中直接使用该变量,而无需在 try-with-resources 语句中声明一个新变量// A final resourcefinal Resource resource1 = new Resource("resource1");// An effectively final resourceResource resource2 = new Resource("resource2");try (resource1;resource2) {// 直接使用 resource1 and resource 2.}}
}class Resource implements AutoCloseable {void doSome() {System.out.println("do something");}@Overridepublic void close() throws Exception {System.out.println("resource is closed");}
}

3.2关闭多个资源

public class Test {public static void main(String[] args) {try(ResourceSome some = new ResourceSome();ResourceOther other = new ResourceOther()) {some.doSome();other.doOther();} catch(Exception ex) {ex.printStackTrace();}}
}class ResourceSome implements AutoCloseable {void doSome() {System.out.println("do something");}@Overridepublic void close() throws Exception {System.out.println("some resource is closed");}
}class ResourceOther implements AutoCloseable {void doOther() {System.out.println("do other things");}@Overridepublic void close() throws Exception {System.out.println("other resource is closed");}
}


http://www.mrgr.cn/news/68346.html

相关文章:

  • 实习冲刺Day16
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第七十二章 Debian文件系统
  • 996引擎 - 活捉NPC
  • 为什么要选择优质的短效IP池来进行抓取?
  • 如何在 Ubuntu 上安装和配置 GitLab
  • 轻量级Nacos来了!占用资源极低,性能炸裂!
  • anaconda 安装笔记Ubuntu20
  • 强大又好用 这些AI工具让效率提升10倍
  • 【TS】九天学会TS语法——5.TypeScript的类
  • 气膜球幕:打造引人注目的展览新选择—轻空间
  • InsectaIntel 智能昆虫识别平台
  • 无人机影像处理系统技术选型
  • 【数据集】【YOLO】【目标检测】摔跤识别数据集 5097 张,YOLO行人摔倒识别算法实战训练教程!
  • node-sass下载报错解决方案
  • Java语法糖,你用过哪些?
  • 深入学习指针(5)!!!!!!!!!!!!!!!
  • Feign中的RequestInterceptor详解及配置
  • 万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
  • 智能指针中的循环引用具体解决流程
  • 数据去重和去噪技术
  • 易泊车牌识别相机:智能与精准的完美结合
  • Java反射、注解、泛型——针对实习面试
  • Spark 中的 RDD 分区的设定规则与高阶函数、Lambda 表达式详解
  • 吹爆!2024最详细的大模型学习路线已整理!手把手带你高效入门,大模型论文全打通!(大模型微调/大模型学习路线/大模型入门)
  • 【华为机试题】 [Python] 贪心的商人
  • px4 wai bu ding wei