lovefamilyC 2019-03-29 11:57 采纳率: 100%
浏览 969
已采纳

JDBC工具类中的流不需要关闭吗?

网上看了好多的JDBC工具类,类似下面代码,发现里面的流都没有关闭,是不需要关闭吗?有大神解答一下吗?

JDBCUtils工具类配置文件的读取方式
//第一种方式

Properties prop= new Properties();
        //读取文件   通过类加载读取
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("data.properties");
        prop.load(is);
        String driverClass = prop.getProperty("driverClass");
        String url = prop.getProperty("url");

        String username = prop.getProperty("username");

        String password = prop.getProperty("password");

//第二种方式

        Properties properties = new Properties();

        // 读取属性文件:使用Java中Properties的对象.

        InputStream is = new FileInputStream("src/jdbc.properties");

        properties = new Properties();

        properties.load(is);

        String driverClass = properties.getProperty("driverClass");

        String url = properties.getProperty("url");

        String username = properties.getProperty("username");
        String password = properties.getProperty("password");
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-03-29 12:44
    关注

    因为Stream的析构函数会自动调用
    而作为局部变量,函数执行完就不再引用,那么垃圾回收器会回收它们,从而调用析构函数,从而关闭。

    所以一般来说没问题。

    但是,当你的连接是稀缺资源,而内存很充足的时候,垃圾回收器就比较“懒惰”,那么你就要自己释放,不能等着自动回收。

    还有就是作为静态的、全局的变量,那么也最好自己关闭。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划