31道Java核心面试题,一次性打包送给你 (6)

finalize() 是 Object 类的一个特殊方法,当对象正在被垃圾回收时,垃圾收集器将会调用该方法。可以重写该方法用于释放系统资源。

26、可以将一个类声明为 static 的吗?

不能将一个外部类声明为 static 的,但可以将一个内部类声明为 static 的——称为静态内部类。

27、什么是静态导入?

如果必须在一个类中使用其他类的静态变量或者静态方法,通常我们需要先导入该类,然后使用“类名.变量/方法”的形式调用。

import java.lang.Math;

double test = Math.PI * 5;

也可以通过静态导入的方式,就不需要再使用类名了。

import static java.lang.Math.PI;

double test = PI * 5;

不过,静态导入容易引发混乱(变量名或者方法名容易冲突),因此最好避免使用静态导入。

28、什么是 try-with-resources?

try-with-resources 是 Java 7 时引入的一个自动资源管理语句,在此之前,我们必须通过 try-catch-finally 的方式手动关闭资源,当我们忘记关闭资源的时候,就容易导致内存泄漏。

关于 try-with-resources 更详细的内容,可以参照我之前写了另外一篇文章:

我去,你竟然还在用 try–catch-finally

29、什么是 multi-catch?

Java 7 改进的另外一个地方就是 multi-catch,可以在单个 catch 中捕获多个异常,当一个 try 块抛出多个类似的异常时,这种写法更短,更清晰。

catch(IOException | SQLException ex){
     logger.error(ex);
     throw new MyException(ex.getMessage());
}

当有多个异常的时候,可以使用管道表示符“|”隔开。

30、什么是 static 块?

static 块是由 Java ClassLoader 将类加载到内存中时执行的代码块。通常用于初始化类的静态变量或者创建静态资源。

31、什么是接口?

接口是 Java 编程语言中的一个核心概念,不仅在 JDK 源码中使用很多,还在 Java 设计模式、框架和工具中使用很多。接口提供了一种在 Java 中实现抽象的方法,用于定义子类的行为约定。

关于接口更详细的内容,可以参照我之前写了另外一篇文章:

可能是把 Java 接口讲得最通俗的一篇文章

鸣谢

说句实在话,这 31 道 Java 核心面试题在面试的过程中还是很常见的,值得好好复习一遍。关键是还有下一波,同样 31 道,望眼欲穿吧?

好了,我亲爱的小伙伴们,能看到这里绝逼是最优秀的程序员,二哥必须伸出帅气的大拇指为你点个赞!

我是沉默王二,一枚有颜值却靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,奥利给

注:如果文章有任何问题,欢迎毫不留情地指正。

很多读者都同情我说,“二哥母猪似的日更原创累不累?”我只能说写作不易,且行且珍惜啊,欢迎微信搜索「沉默王二」第一时间阅读,回复「简历」更有我精心为你准备的简历模板,本文 GitHub github.com/itwanger 已收录,欢迎 star。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfppw.html