java高级面试题有哪些?java高级面试题常问

阳光 2022-08-24 15:28:27 java常见问答 8060

我们在进行java面试的时候,面试官会根据你面试的职位进行考核,初级有初级的考核知识点,高级有高级的考核方式,那java高级面试题有哪些?接下来我们就来给大家讲解一下这方面的内容。

java高级面试题.jpg

1.ystem.gc() 和 runtime.gc() 方法有什么作用?

这两种方法都可以用作 JVM 启动垃圾收集的提示。但是,由 JVM 决定是否立即或稍后开始收集。

2.什么是应用程序上下文?

应用程序上下文类似于 bean 工厂,两者都能够加载定义、将 bean 连接在一起以及根据请求分配 bean。但是应用程序上下文还具有其他功能,包括加载文件资源的通用方法、解析文本消息的方法以及注册为侦听器的 bean 事件。

3.什么是 JDBC?

JDBC 是一个抽象层。它允许用户在数据库之间进行选择,并使开发人员能够用 Java 编写数据库应用程序,而无需担心特定数据库的底层细节。

4.比较 Java 中的 sleep() 和 wait() 函数。

sleep() 是一个阻塞操作。它将保持在监视器上并将共享对象锁定一定的毫秒数。

wait() 暂停线程,直到经过指定的毫秒数或它从另一个线程接收到通知,无论哪个实例先发生。此函数不会保留监视器或锁定共享对象。

sleep() 通常用于定期检查某些结果,例如轮询。wait() 常用于多线程对话,以实现同步并避免竞争条件。

5.垃圾回收的最佳做法?

用编程的方式,我们可以要求(记住这只是一个请求——不是一个命令)JVM通过调用System.gc()方法来运行垃圾回收。

当内存已满,且堆上没有对象可用于垃圾回收时,JVM可能会抛出OutOfMemoryException。

对象在被垃圾回收从堆上删除之前,会运行finalize()方法。我们建议不要用finalize()方法写任何代码。

6.Java 中如何格式化一个日期?如格式化为 ddMMyyyy的形式?

Java 中,可以使用 SimpleDateFormat 类或者 joda-time 库来格式日期。DateFormat 类允许你使用多种流行的格式来格式化日期。

7.Java 中,怎么在格式化的日期中显示时区?

使用SimpleDateFormat来实现格式化日期,但是DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如将SimpleDateFormat 限制在 ThreadLocal 中。

如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。因此,从日期、时间处理的所有实践来说,强力推荐 joda-time 库。

8.怎么利用 JUnit 来测试一个方法的异常?

对需要测试异常的代码使用try,catch语句块。比如:public void testException(){try{Long.parseLong(null);} catch(NumberFormatException expected){}}然后使用Junit的fail函数,对于没有抛出预期异常的代码。

Java高级面试题一般来说会比较难,毕竟java高级需要有过硬的技能,完全掌握好java知识才能胜任高级工程师,所以我们需要不断提升自己的技能!最后大家如果想要了解更多Java面试题知识,敬请关注奇Q工具网。

推荐阅读:

json的几种数据格式是什么?json数组如何入门?

java满屏飘爱心代码怎么写?java爱心代码编写实例

java非运行时异常会自动抛出吗?Java常见的异常有哪些?