2023年JAVA认证面试试题.docx





《2023年JAVA认证面试试题.docx》由会员分享,可在线阅读,更多相关《2023年JAVA认证面试试题.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 2023年JAVA认证面试试题 1) Java中什么是Exception? 这个问题常常在第一次问有关特别的时候或者是面试菜鸟的时候问。我从来没见过面高级或者资深工程师的 时候有人问这玩意,但是对于菜鸟,是很情愿问这个的。简洁来说,特别是Java传达给你的系统和程序错误的方 式。在java中,特别功能是通过实现比方Throwable,Exception,RuntimeException之类的类,然后还有一 些处理特别时候的关键字,比方throw,throws,try,catch,finally之类的。 全部的特别都是通过Throwable 衍生出来的。Throwable把错误进一步划分为 j
2、ava.lang.Exception 和 java.lang.Error. java.lang.Error 用 来处理系统错误,例如java.lang.StackOverFlowError 或者 Java.lang.OutOfMemoryError 之类的。然后 Exception用来处理程序错误,恳求的资源不行用等等。 2) Java中的检查型特别和非检查型特别有什么区分? 这又是一个特别流行的Java特别面试题,会消失在各种层次的Java面试中。检查型特别和非检查型特别的 主要区分在于其处理方式。检查型特别需要使用try, catch和finally关键字在编译期进展处理,否则会消失编译
3、器会报错。对于非检查型特别则不需要这样做。Java中全部继承自java.lang.Exception类的特别都是检查型 特别,全部继承自RuntimeException的特别都被称为非检查型特别。你也可以查看下一篇文章来了解 更多关于检查型特别和非检查型特别之间的区分。 3) Java中的NullPointerException和ArrayIndexOutOfBoundException之间有什么一样之处? 在Java特别面试中这并不是一个很流行的问题,但会消失在不同层次的初学者面试中,用来测试应聘者对检查 型特别和非检查型特别的概念是否熟识。顺便说一下,该题的答案是,这两个特别都是非检查型特
4、别,都继承自RuntimeException。该问题可能会引出另一个问题,即Java和C的数组有什么不同之处,由于C里面的数组是没有 大小限制的,肯定不会抛出ArrayIndexOutOfBoundException。 4)在Java特别处理的过程中,你遵循的那些最好的实践是什么? 这个问题在面试技术经理是特别常见的一个问题。由于特别处理在工程设计中是特别关键的,所以精通特别处 理是非常必要的。特别处理有许多最正确实践,下面列举集中,它们提高你代码的强健性和敏捷性: 1) 调用方法的时候返回布尔值来代替返回null,这样可以 NullPointerException。由于空指针是java特别里
5、最恶 心的特别。 2) catch块里别不写代码。空catch块是特别处理里的错误大事,由于它只是捕获了特别,却没有任何处理或者 提示。通常你起码要打印出特别信息,固然你最好依据需求对特别信息进展处理。 3)能抛受控特别(checked Exception)就尽量不抛受非控特别(checked Exception)。通过去掉重复的特别处 理代码,可以提高代码的可读性。 4) 肯定不要让你的数据库相关特别显示到客户端。由于绝大多数数据库和SQLException特别都是受控特别,在Java中, 你应当在DAO层把特别信息处理,然后返回处理过的能让用户看懂并依据特别提示信息改正操作的特别信息。 5
6、) 在Java中,肯定要在数据库连接,数据库查询,流处理后,在finally块中调用close()方法。 5) 既然我们可以用RuntimeException来处理错误,那么你认为为什么Java中还存在检查型特别? 这是一个有争议的问题,在答复该问题时你应当当心。虽然他们确定情愿听到你的观点,但其实他们最感兴 趣的还是有说服力的理由。我认为其中一个理由是,存在检查型特别是一个设计上的打算,受到了诸如C+等比 Java更早的编程语言设计阅历的影响。绝大多数检查型特别位于java.io包内,这是符合情理的,由于在你恳求了 不存在的系统资源的时候,一段强壮的程序必需能够优雅的处理这种状况。通过把IO
7、Exception声明为检查型异 常,Java 确保了你能够优雅的对特别进展处理。另一个可能的理由是,可以使用catch或finally来确保数量受限 的系统资源(比方文件描述符)在你使用后尽早得到释放。 6) throw 和 throws这两个关键字在java中有什么不同? 一个java初学者应当把握的面试问题。 throw 和 throws乍看起来是很相像的尤其是在你还是一个java初学者的时 候。尽管他们看起来相像,都是在处理特别时候使用到的。但在代码里的使用方法和用到的地方是不同的。throws 总是消失在一个函数头中,用来标明该成员函数可能抛出的各种特别, 你也可以申明未检查的特别,
8、但这不是编译 器强制的。假如方法抛出了特别那么调用这个方法的时候就需要将这个特别处理。另一个关键字 throw 是用来 抛出任意特别的,根据语法你可以抛出任意 Throwable (i.e. Throwable 或任何Throwable的衍生类) , throw 可以中断程序运行,因此可以用来代替return . 最常见的例子是用 throw 在一个空方法中需要return的地方抛出 UnSupportedOperationException 代码如下 : 1 private static voidshow() 2 throw new UnsupportedOperationException
9、(“Not yet implemented”); 3 7) 什么是“特别链”? “特别链”是Java中特别流行的特别处理概念,是指在进展一个特别处理时抛出了另外一个特别,由此产生 了一个特别链条。该技术大多用于将“ 受检查特别” ( checked exception)封装成为“非受检查特别” (unchecked exception)或者RuntimeException。顺便说一下,假如由于由于特别你打算抛出一个新的特别, 你肯定要包含原有的特别,这样,处理程序才可以通过getCause()和initCause()方法来访问特别最终的根源。 8) 你曾经自定义实现过特别吗?怎么写的? 很明显
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 JAVA 认证 面试 试题

限制150内