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的析构函数会自动调用
    而作为局部变量,函数执行完就不再引用,那么垃圾回收器会回收它们,从而调用析构函数,从而关闭。

    所以一般来说没问题。

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

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

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

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况