Loading

Java面试题6 异常

自己尝试通过打字来回答一些网上常见的面试题,答案仅代表我自己的观点

74. throw 和 throws 的区别?

throw用于抛出一个异常,throws用于在方法签名上声明该方法可能抛出的异常,代表向外界宣称我要执行的工作可能抛出这种异常,但我并不知道如何处理,就交给调用者处理吧。

75. final、finally、finalize 有什么区别?

???你不问我真不知道它们有关系。。。憨批问题吗???

  1. final用于声明一个类、方法、属性是最终的,被它修饰的类、方法、和属性无法被二次修改
  2. finally是异常控制流中的一块,其中是无论是否发生了异常都会执行的逻辑。
  3. finalize是Java中一个已经废弃的方法,它是Object类的一个方法,JVM会在对象将要被GC回收时调用该方法,你可以在该方法中执行一些清理操作或者将该对象重新与引用链相连来“营救”该对象。JVM并不保证finalize方法的完整执行,所以不推荐使用它来清理数据。

76. try-catch-finally 中哪个部分可以省略?

可以省略catch,只用try-finally,也可以省略finally、只用try-catch。不能同时省略。

77. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

不管是否return,在try还是catchreturnfinally都会正常执行,并且return语句会延后在finally执行完毕后执行。

78. 常见的异常类有哪些?

  1. IOException: IO异常
  2. IllegalArgumentException: 非法参数异常
  3. ArrayIndexOutOfBoundsException: 数组下标越界异常
  4. NullPointerException: 空指针异常
posted @ 2022-06-23 10:39  yudoge  阅读(18)  评论(0编辑  收藏  举报