Java 基础面试题(三)

Java 基础面试题(三)

今天有更多的时间学习,加油!

1、如何把一段逗号分割的字符串转换成一个数组?

用正则表达式,运行结果图:去掉逗号生成数组
视频讲解链接:
StringTokenizer
split()

2、数组有length()方法吗?String有没有length()这个方法?

数组中没有length()这个方法,但是有length属性,String有length()这个方法。
视频讲解链接:
数组length属性
字符串 length()方法

3、运行时异常与一般异常有何异同?

异常表示程序运行时可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能会遇到的异常,是一种常见运行错误,java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
视频讲解链接:
运行时异常和非运行时异常
异常机制_异常分类_常见运行时异常详解

4、error和exception有什么区别?

思维导图:error和exception
视频讲解链接:
异常
error和exception

5、Java中的异常处理机制的简单原理和应用。

Java使用面向对象的方式来处理异常,它把程序中发生的每个异常都分别封装到一个对象来表示,该对象中包含有异常的信息。Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为java.lang.Throwable,Throwable 下面又派生了两个子类:Error和Exception。如下图所示:
异常处理机制
Java 为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须 try…catch 处理或者用 throws 声明继续抛给上层调用方法处理,所以普通异常通常也称为 checked 异常,而系统异常可以处理也可以不处理,所以编译器不强制用try…catch处理或用throws声明,所以系统异常也称为 unchecked 异常。
视频讲解链接:异常处理机制

6、请说一下你最常见的5个runtime exception。

通过前面几个题的学习,这个题就自然游刃有余了!系统异常都是 RuntimeException 的子类,有印象也见得比较多的系统异常有:

  • ArithmeticException,算数异常,最常见的是除0错误;
  • NumberFormatException,数字格式化异常,常见的为类型转换时的异常;
  • ArrayIndexOutOfBoundsException,数组下标越界异常;
  • NullPointerException,空指针异常;
  • ClassCastException,类型转换异常。

7、Java语言如何进行异常处理,关键字throws,throw,try,catch,finally 分别代表什么含义?在try块中可以抛出异常吗?

try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型
来捕捉(catch)它,或最后(finally)由缺省处理器来处理。在 try 块张红可以抛出异常。

  • 用try来指定一块预防所有"异常"的程序。
  • 紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。
  • throw语句用来明确地抛出一个"异常"。
  • throws用来标明一个成员函数可能抛出的各种"异常"。
  • Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
    视频讲解链接:异常概述_try_catch_finally详解_throw抛出异常

8、try{} 中有一个return语句,那么紧跟在你这个try后的finally{} 里的code 会不会被执行,什么时候执行,在return前还是后?

会执行,在方法返回调用者前执行。可以看下面这个例子:
finally 执行

9、为了更好地理解try…finally,我们通过代码例子来分析一下其执行的过程。

下图的结果是 2。我们利用一个例子来理解一下这段代码的执行过程。练习>从下图的运行结果可以得出:try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说return语句先执行,finally 语句后执行,所以返回的结果是2。 return 并不是让函数马上返回,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行语句后才真正开始返回。

10、final,finally,finalize 的区别?

  • final 用于声明属性,方法和类,分表表示属性不变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义为final类型。
  • finally 是异常处理语句结构的一部分,表示其中的代码总是会执行的。
  • finalize 是Object类中的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,如关闭文件等,JVM 不保证此方法总被调用。
    视频讲解链接:final,finally,finalize的区别
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值