最新阿昌教你如何自动关闭 自定义资源类(2),Java进阶面试资料无偿分享

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

System.out.println(rs.getString(“id”) + " " + rs.getString(“name”));

}

} catch (Exception e) {

e.printStackTrace();

} finally {

//5.关闭资源

if (null != rs) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (null != st) {

try {

st.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (null != conn) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

}

上面,你会发现在finally代码块中,有大量的重复性代码,还需要关闭3个资源,但关闭资源是没啥逻辑的代码,需要精简代码,减少代码重复性,就可以优雅的编程!

  • 使用AutoCloseable接口

从Java7以后,就可使用 AutoCloseable接口 (Closeable接口也可以)来优雅的关闭资源了 看看修改例子:

这里使用了语法糖try-with-resources

try (

//资源内容

) {

//业务逻辑

} catch (Exception e) {

//异常逻辑

} finally{

//finally逻辑

}

修改例子:↓

public class Test {

public static void main(String[] args) throws ClassNotFoundException {

//1.加载驱动程序

Class.forName(“com.mysql.jdbc.Driver”);

try (//2.获得数据库链接

Connection conn = DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/common”, “root”, “123456”);

//3.通过数据库的连接操作数据库,实现增删改查

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery(“select * from new_table”)

) {

//4.处理数据库的返回结果

while (rs.next()) {

System.out.println(rs.getString(“id”) + " " + rs.getString(“name”));

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

以上就可以不需要在finally中对资源进行判空,再进行关闭

  • 实际应用

//使用try-with-resources自动关闭资源测试

public class Test {

public static void main(String[] args){

try (AchangResource resources = new AchangResource ()){

resources.useResource();

}catch (Exception e) {

e.getMessage();

}finally {

System.out.println(“Finally!”);

}

}

}

//自定义资源类, 实现AutoCloseable接口

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。

面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

080)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 29
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值