您的位置 首页 java

java面试题整理《基础篇》七

Error 和 Exception 区别是什么?
Exception 类的错误是可以在应用程序中进行捕获并处理的,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。Exception ⼜可以分为受检查异常(必须处理) 和 不受检查异常(可以不处理)。

Error 是⽆法处理的(只能尽量避免)。这种类型的错误通常是虚拟机相关的错误,例如: Java 虚拟机 运⾏错误( Virtual MachineError )、虚拟机内存不够错误( OutOfMemory Error )等 。这些异常发⽣时, Java虚拟机 JVM )⼀般会选择线程终⽌,仅靠应用程序本身无法恢复;

受检查异常与不授检查异常
受检查异常:

Java 代码在编译过程中,如果受检查异常没有被 catch / throw 处理的话,会导致程序编译不通过。⽐如下⾯这段 IO 操作的代码。除了 RuntimeException 及其⼦类以外,其他的 Exception 类及其⼦类都属于检查异常 。常⻅的受
检查异常有: IO 相关的异常、 Class NotFoundException 、 SQLException (数据库相关异常)等。

不受检查异常:
Java 代码在编译过程中 ,我们即使不处理不受检查异常也可以正常通过编译,不受检查异常往往发生在程序运行的过程中,会导致当前 线程 执行失败。

RuntimeException 及其⼦类都统称为⾮受检查异常,例如:

NullPointExecrption (空指针异常)
NumberFormatException (字符串转换为数字)
ArrayIndexOutOfBoundsException (数组越界)
ClassCastException (类型转换错误)
ArithmeticException (算术错误)等
我们自定义的异常往往也都继承RuntimeException。

throw 和 throws 的区别是什么?
Java 中的异常处理除了包括捕获异常和处理异常之外,还包括声明异常和拋出异常,可以通过 throws 关键字在方法上声明该方法要拋出的异常(可能出现异常,可以抛出多个异常),或者在方法内部通过 throw 拋出异常对象(一定会抛出一种异常)。

Java 中 IO 流分为几种?
按照流的流向分,可以分为输⼊流和输出流;
按照操作单元划分,可以划分为字节流和字符流;
按照流的⻆⾊划分为节点流和处理流。
Java IO 流共涉及 40 多个类,这些类看上去很杂乱,但实际上很有规则,⽽且彼此之间存在⾮常紧密的联系,Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派⽣出来的。

InputStream /Reader: 所有的输⼊流的基类,前者是字节输⼊流,后者是字符输⼊流。
OutputStream /Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

文章来源:智云一二三科技

文章标题:java面试题整理《基础篇》七

文章地址:https://www.zhihuclub.com/181925.shtml

关于作者: 智云科技

热门文章

网站地图