最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中使用Closeable接口自動(dòng)關(guān)閉資源詳解

 更新時(shí)間:2023年12月02日 08:34:47   作者:nuomizhende45  
這篇文章主要介紹了Java中使用Closeable接口自動(dòng)關(guān)閉資源詳解,Closeable接口繼承于AutoCloseable,主要的作用就是自動(dòng)的關(guān)閉資源,其中close()方法是關(guān)閉流并且釋放與其相關(guān)的任何方法,如果流已被關(guān)閉,那么調(diào)用此方法沒有效果,需要的朋友可以參考下

Closeable接口自動(dòng)關(guān)閉資源

Closeable接口繼承于AutoCloseable,主要的作用就是自動(dòng)的關(guān)閉資源,其中close()方法是關(guān)閉流并且釋放與其相關(guān)的任何方法,如果流已被關(guān)閉,那么調(diào)用此方法沒有效果,像 InputStream和OutputStream類都實(shí)現(xiàn)了該接口,源碼如下

/*
 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package java.io;
import java.io.IOException;
/**
 * A {@code Closeable} is a source or destination of data that can be closed.
 * The close method is invoked to release resources that the object is
 * holding (such as open files).
 *
 * @since 1.5
 */
public interface Closeable extends AutoCloseable {
    /**
     * Closes this stream and releases any system resources associated
     * with it. If the stream is already closed then invoking this
     * method has no effect.
     *
     * <p> As noted in {@link AutoCloseable#close()}, cases where the
     * close may fail require careful attention. It is strongly advised
     * to relinquish the underlying resources and to internally
     * <em>mark</em> the {@code Closeable} as closed, prior to throwing
     * the {@code IOException}.
     *
     * @throws IOException if an I/O error occurs
     */
    public void close() throws IOException;
}

Closeable用法

1.在1.7之前,我們通過try{} finally{} 在finally中釋放資源。

2.對(duì)于實(shí)現(xiàn)AutoCloseable接口的類的實(shí)例,將其放到try后面(我們稱之為:帶資源的try語句),在try結(jié)束的時(shí)候,會(huì)自動(dòng)將這些資源關(guān)閉(調(diào)用close方法)。

test1方法是最常規(guī)的try{}catch{}finally{}

test2是使用closeable自動(dòng)釋放資源

package com.canal.demo;
import java.io.Closeable;
import java.io.IOException;
public class CloseableTest implements Closeable {
    public static void test1() {
        try {
            System.out.println("test1方法 處理邏輯");
        } catch (Exception e) {
            System.out.println("test1方法 異常處理");
        } finally {
            System.out.println("test1方法 釋放資源");
        }
    }
    public static void test2() {
        try (CloseableTest c = new CloseableTest()) {
            System.out.println("test2方法 處理邏輯");
        } catch (Exception e) {
            System.out.println("test2方法 處理異常");
        }
    }
    @Override
    public void close() throws IOException {
        System.out.println("test2方法這里自動(dòng)釋放資源");
    }
    public static void main(String[] args) {
        test1();
        test2();
    }
}

運(yùn)行結(jié)果如下

到此這篇關(guān)于Java中使用Closeable接口自動(dòng)關(guān)閉資源詳解的文章就介紹到這了,更多相關(guān)Closeable接口自動(dòng)關(guān)閉資源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Spring MVC的攔截器與異常處理機(jī)制

    詳解Spring MVC的攔截器與異常處理機(jī)制

    這篇文章主要為大家詳細(xì)介紹了Spring MVC的攔截器與異常處理機(jī)制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • netty中的IO、NIO、AIO使用詳解

    netty中的IO、NIO、AIO使用詳解

    這篇文章主要介紹了netty中的IO、NIO、AIO使用詳解,本文會(huì)說明各種IO的特點(diǎn)、分別解決了什么樣的問題做一個(gè)分析闡述,并結(jié)合Java代碼例子來輔助理解,像這些的歷史演進(jìn)和詳細(xì)的底層原理網(wǎng)上很多,所以我們只站在應(yīng)用層,使用者的角度去分析,需要的朋友可以參考下
    2023-12-12
  • Springboot配置返回日期格式化五種方法詳解

    Springboot配置返回日期格式化五種方法詳解

    本文主要介紹了Springboot配置返回日期格式化五種方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java8?Stream流多字段求和、匯聚的實(shí)例

    Java8?Stream流多字段求和、匯聚的實(shí)例

    這篇文章主要介紹了Java8?Stream流多字段求和、匯聚的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java 實(shí)現(xiàn)簡(jiǎn)單Socket 通信的示例

    Java 實(shí)現(xiàn)簡(jiǎn)單Socket 通信的示例

    這篇文章主要介紹了Java 實(shí)現(xiàn)簡(jiǎn)單Socket 通信的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • Springboot以Repository方式整合Redis的方法

    Springboot以Repository方式整合Redis的方法

    這篇文章主要介紹了Springboot以Repository方式整合Redis的方法,本文通過圖文并茂實(shí)例詳解給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java參數(shù)校驗(yàn)詳解之使用@Valid注解和自定義注解進(jìn)行參數(shù)驗(yàn)證

    Java參數(shù)校驗(yàn)詳解之使用@Valid注解和自定義注解進(jìn)行參數(shù)驗(yàn)證

    在后端開發(fā)中,參數(shù)校驗(yàn)是非常普遍的,下面這篇文章主要給大家介紹了關(guān)于Java參數(shù)校驗(yàn)詳解之使用@Valid注解和自定義注解進(jìn)行參數(shù)驗(yàn)證的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • 一文詳解Spring中的HttpMessageNotReadableException異常處理

    一文詳解Spring中的HttpMessageNotReadableException異常處理

    這篇文章主要為大家詳細(xì)介紹了Spring中的HttpMessageNotReadableException異常,分析其產(chǎn)生的原因并通過實(shí)際代碼示例展示如何有效地捕獲和處理這一異常,感興趣的可以了解下
    2025-02-02
  • mybatis中orderBy(排序字段)和sort(排序方式)引起的bug及解決

    mybatis中orderBy(排序字段)和sort(排序方式)引起的bug及解決

    這篇文章主要介紹了mybatis中orderBy(排序字段)和sort(排序方式)引起的bug,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot+redis配置及測(cè)試的方法

    SpringBoot+redis配置及測(cè)試的方法

    這篇文章主要介紹了SpringBoot+redis配置及測(cè)試的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論

邳州市| 论坛| 庆安县| 确山县| 德阳市| 通州市| 长子县| 金沙县| 兰西县| 宁国市| 芦溪县| 沈阳市| 白玉县| 兴文县| 乌拉特中旗| 西吉县| 山西省| 泰和县| 图们市| 五常市| 合作市| 富平县| 石渠县| 麻阳| 印江| 南京市| 内丘县| 翁牛特旗| 佛山市| 洮南市| 罗源县| 保亭| 桓台县| 临桂县| 潢川县| 莫力| 化州市| 丰台区| 和硕县| 竹溪县| 高邑县|