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());
            }
        }
    }
  • 相关阅读:
    Mysql 源码安装
    mysql的主从复制
    Centos7通过glib方式安装mysql
    Host is not allowed to connect to this MySQL server解决方法
    MobaXterm记录日志
    Linux的录屏
    ShardingJdbc垂直分库及公共表
    应用系统间几种数据传输方式
    关于加班
    对函数式编程的简单理解
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/8410563.html
Copyright © 2011-2022 走看看