欢迎来到知了堂!
知了堂-电话号码 028-87058185

知了堂Java培训分享Java初学者应该掌握的面试题-知了堂

知了堂Java培训分享Java初学者应该掌握的面试题

  本篇文章小编主要和大家分享一下Java初学者应该掌握的面试问题,这是不少参加完知了堂Java培训准备面试的小伙伴所急需知道的,下面就和小编一起来了解一下吧。

  1、 throw和throws这两个关键字在java中有什么不同?

  这确实是一个java初学者应该掌握的面试问题。throw和throws乍看起来是很相似的,尤其是在你还是一个java初学者的时候。尽管他们看起来相似,都是在处理异常时候使用到的。但在代码里的使用方法和用到的地方是不同的。throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常,你也可以申明未检查的异常,但这不是编译器强制的。如果方法抛出了异常那么调用这个方法的时候就需要将这个异常处理。另一个关键字throw是用来抛出任意异常的,按照语法你可以抛出任意Throwable (i.e. Throwable 或任何Throwable的衍生类) ,throw可以中断程序运行,因此可以用来代替return . 最常见的例子是用throw在一个空方法中需要return的地方抛出 UnSupportedOperationException 代码如下:
  private static void show() { throw new UnsupportedOperationException("Not yet implemented"); }

知了堂老师告诉你Java初学者应该掌握的面试题

  2、你曾经自定义实现过异常吗?怎么写的?

  很显然,我们绝大多数都写过自定义或者业务异常,像AccountNotFoundException。在面试过程中询问这个Java异常问题的主要原因是去发现你如何使用这个特性的。这可以更准确和精致的去处理异常,当然这也跟你选择checked 还是unchecked exception息息相关。通过为每一个特定的情况创建一个特定的异常,你就为调用者更好的处理异常提供了更好的选择。相比通用异常(general exception),我更倾向更为精确的异常。大量的创建自定义异常会增加项目class的个数,因此,在自定义异常和通用异常之间维持一个平衡是成功的关键。

  3、什么是"异常链"?

  "异常链"是Java中非常流行的异常处理概念,是指在进行一个异常处理时抛出了另外一个异常,由此产生了一个异常链条。该技术大多用于将" 受检查异常" ( checked exception)封装成为"非受检查异常"(unchecked exception)或者RuntimeException。顺便说一下,如果因为因为异常你决定抛出一个新的异常,你一定要包含原有的异常,这样,处理程序才可以通过getCause()和initCause()方法来访问异常最终的根源。

  4、 JDK7中对异常处理做了什么改变?

  这是最近新出的Java异常处理的面试题。JDK7中对错误(Error)和异常(Exception)处理主要新增加了2个特性,一是在一个catch块中可以出来多个异常,就像原来用多个catch块一样。另一个是自动化资源管理(ARM),也称为try-with-resource块。这2个特性都可以在处理异常时减少代码量,同时提高代码的可读性。对于这些特性了解,不仅帮助开发者写出更好的异常处理的代码,也让你在面试中显的更突出。

  5、如果执行finally代码块之前方法返回了结果,或者JVM退出了,finally块中的代码还会执行吗?

  这个问题也可以换个方式问:"如果在try或者finally的代码块中调用了System.exit(),结果会是怎样"。了解finally块是怎么执行的,即使是try里面已经使用了return返回结果的情况,对了解Java的异常处理都非常有价值。只有在try里面是有System.exit(0)来退出JVM的情况下finally块中的代码才不会执行。

  6、你遇到过OutOfMemoryError 错误嘛?你是怎么搞定的?

  这个面试题会在面试高级程序员的时候用,面试官想知道你是怎么处理这个危险的OutOfMemoryError错误的。必须承认的是,不管你做什么项目,你都会碰到这个问题。所以你要是说没遇到过,面试官肯定不会买账。要是你对这个问题不熟悉,甚至就是没碰到过,而你又有3、4年的Java经验了,那么准备好处理这个问题吧。在回答这个问题的同时,你也可以借机向面试秀一下你处理内存泄露、调优和调试方面的牛逼技能,发现掌握这些技术的人都能给面试官留下深刻的印象。
  以上就是小编给大家分享的Java初学者应该掌握的面试问题,希望对小伙伴们有所帮助,想要了解更多内容的小伙伴可以登录知了堂官网咨询。想要学好Java开发小编给大家推荐口碑良好的知了堂,知了堂有专业老师制定的Java学习路线图辅助学员学习,此外还有与时俱进的Java课程体系和Java入门视频教程供学员观看学习,想要学好Java开发技术的小伙伴快快行动吧。