zoukankan      html  css  js  c++  java
  • java 物理资源回收 finally与try

    java垃圾回收机制不会回收任何物理资源(磁盘文件、数据库连接、网络连接),垃圾回收机制只能回收堆内存中对象所占用的内存。

    方法一使用finally块,在finally块中写入资源回收代码,如下:

    public class FinallyTest {
    
        public static void main(String[] args) {
    
            FileInputStream fis = null;
            try {
    
                fis = new FileInputStream("a.txt");
            }
            catch (IOException e) {
    
                System.out.println(e.getMessage());
            }
    
            // 在finally块中回收物理资源
            finally {
    
                try {
                    // 关闭文件输入流,释放与之关联的系统资源
                    fis.close();
                }
                catch (Exception e) {
                    System.out.println(e);
                }
            }
        }
    }

    另一种更简洁的方法是使用try语句。

    在try关键字后面紧跟一对圆括号,圆括号中声明初始化需要自动关闭的资源。

    public class FinallyTest {
    
        public static void main(String[] args) {
    
            // 将需要关闭的资源放入try的()中,try块结束后自动释放物理资源
            try (FileInputStream fis = new FileInputStream("a.txt"))
            {
    
                byte[] b = new byte[1024];
                fis.read(b);
            }
            catch (IOException e) {
    
                System.out.println(e.getMessage());
            }
        }
    }
  • 相关阅读:
    Git 学习小问题记录
    Spring缓存源码剖析:(一)工具选择
    最佳线程数
    Python 装饰器备忘
    使用SCSS扩展Bootstrap4
    Flask 路由相关操作
    Flask开发环境搭建
    Python数据分析开发环境
    Python中的矩阵操作
    Windows 安装 MySQL 8.0.11
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/8410563.html
Copyright © 2011-2022 走看看