JAVA面试题大全(六)

1、throw 和 throws 的区别?

throwthrows都是 Java 中用于处理异常的关键字,但它们的用法和作用略有不同。

  1. throw

    • throw用于在方法内部主动抛出一个异常对象。它后面跟的是一个具体的异常对象,可以是系统定义的异常类,也可以是自定义的异常类。
    • 当程序执行到throw语句时,会立即停止当前方法的执行,并将异常对象抛出给调用者。调用者可以选择捕获并处理这个异常,或者继续向上抛出。
    • throw语句通常用于在方法内部处理特定的异常情况,或者在某些条件下强制抛出异常。
  2. throws

    • throws用于在方法的声明处声明该方法可能抛出的异常类型。它后面跟的是一个异常类型的列表,可以是多个异常类型,用逗号分隔。
    • 当一个方法声明了throws异常类型后,调用者在调用这个方法时必须处理这些异常,或者继续将异常向上抛出。
    • throws语句主要用于方法的定义,它告诉调用者这个方法可能会抛出哪些异常,以便调用者在调用时采取相应的处理措施。

2、final、finally、finalize 有什么区别? 

finalfinallyfinalize是 Java 中的三个关键字,它们的含义和用法如下:

  1. final:用于修饰变量、方法和类。当变量被final修饰时,它的值不能被改变;当方法被final修饰时,它不能被重写;当类被final修饰时,它不能被继承。
  2. finally:用于在try-catch块中指定一定会执行的代码块。无论try块中是否发生异常,finally块中的代码都会被执行。
  3. finalize:是Object类的一个方法,用于在对象被垃圾回收之前进行一些清理工作。当对象不再被使用时,垃圾回收器会调用finalize方法来释放对象占用的资源。

3、try-catch-finally 中哪个部分可以省略? 

try-catch-finally语句是 Java 中用于处理异常的一种机制。它的作用是在程序执行过程中捕获可能出现的异常,并在捕获到异常后执行相应的处理代码。

try-catch-finally语句中,try块是必须存在的,它包含了可能会抛出异常的代码。catch块用于捕获try块中抛出的异常,并在catch块中编写处理异常的代码。finally块用于在try块和catch块执行完毕后执行一些必要的清理工作,无论是否发生异常,finally块中的代码都会被执行。

以下是一些可以省略catch块或finally块的情况:

  1. 省略catch块:如果在try块中没有抛出异常,或者抛出的异常不需要进行特殊处理,可以省略catch块。在这种情况下,如果发生异常,程序将会中断,并在控制台输出异常信息。

  2. 省略finally块:如果在try块和catch块中已经完成了所有必要的清理工作,或者不需要进行任何清理工作,可以省略finally块。在这种情况下,程序在执行完try块和catch块后,会直接继续执行后面的代码。

需要注意的是,省略catch块或finally块可能会导致程序的健壮性降低,因此在实际开发中,应该根据具体情况来决定是否省略catch块或finally块。

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

try-catch-finally语句是 Java 中用于处理异常的一种机制。它的作用是在程序执行过程中捕获可能出现的异常,并在捕获到异常后执行相应的处理代码。

try-catch-finally语句中,finally块中的代码无论是否发生异常都会被执行。即使在catch块中执行了return语句,finally块中的代码也会在return语句之前执行。

5、常见的异常类有哪些?

在 Java 中,异常类是指在程序运行过程中发生的错误或异常情况的类。常见的异常类包括以下几种:

  1. RuntimeException:运行时异常类,是所有运行时异常的父类。常见的运行时异常包括NullPointerException(空指针异常)、ArrayIndexOutOfBoundsException(数组越界异常)、ClassCastException(类型转换异常)等。
  2. IOException:输入输出异常类,用于处理输入输出操作中发生的异常。
  3. SQLException:数据库操作异常类,用于处理数据库操作中发生的异常。
  4. ClassNotFoundException:类未找到异常类,用于处理在运行时无法找到指定类的异常。
  5. NumberFormatException:数字格式异常类,用于处理将字符串转换为数字时发生的异常。
  6. FileNotFoundException:文件未找到异常类,用于处理在文件操作中无法找到指定文件的异常。
  7. ArrayStoreException:数组存储异常类,用于处理在数组存储操作中发生的异常。
  8. SecurityException:安全异常类,用于处理安全相关的异常。
  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值