【Java面试知识】异常
来源:互联网 发布:手机端js关闭当前页面 编辑:程序博客网 时间:2024/06/04 19:45
【Java面试知识】异常
Java中的两种异常类型是什么?他们有什么区别?
Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。
不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。
相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。
编译时异常(Exception)和运行时异常(RunException)
throw和throws有什么区别?
throw关键字用来在程序中明确的抛出异常。
相反,throws语句用来表明方法不能处理的异常。每一个方法都必须要指定哪些异常不能处理,所以方法的调用者才能够确保处理可能发生的异常,多个异常是用逗号分隔的。
Java中Exception和Error有什么区别?
Exception和Error都是Throwable的子类。
Exception用于用户程序可以捕获的异常情况。
Error定义了不期望被用户程序捕获的异常。
异常处理完成以后,Exception对象会发生什么变化?
Exception对象会在下一个垃圾回收过程中被回收掉。
finally代码块和finalize()方法有什么区别?
无论是否抛出异常,finally代码块都会执行,它主要是用来释放应用占用的资源。finalize()方法是Object类的一个protected方法,它是在对象被垃圾回收之前由Java虚拟机来调用的。
常见的Exception和Error
Exception、Error体系(写出五个异常和五个错误)
NullPointerException
ArrayIndexOutOfBoundsException
ClassCastException
ArithmeticException: / by zero
NumberFormatException
CloneNotSupportedException
FileNotFoundException
ClassNotFoundException
NoSuchMethodException
OutOfMemoryError
IOError
VirtualMachineError
ThreadDeath
AssertionError
异常处理的时候,finally代码块的重要性是什么
无论是否抛出异常,finally代码块总是会被执行(除非在finally块之前执行了System.exit方法,退出虚拟机)。
就算是没有catch语句同时又抛出异常的情况下,finally代码块仍然会被执行。
最后要说的是,finally代码块主要用来释放资源,比如:I/O缓冲区,数据库连接。
(也在finally代码块里面释放显式锁)
- 【Java面试知识】异常
- java面试知识大全
- JAVA面试知识分类
- Java 面试知识总结
- Java面试知识总结
- 2017 Java面试知识
- JAVA异常知识整理
- java异常小知识
- Java异常知识总结
- Java知识总结-异常
- Java异常知识
- Java知识(异常)
- Java异常知识整理
- java异常面试问题
- 面试-java异常
- 面试准备---Java异常
- Java面试宝典-异常
- 【面试】Java异常链
- linux IPC---记录上锁
- Java-简单操作Excel
- Zend Studio快捷键
- 不同电脑上的两台linux使用桥接模式实现互通(静态ip地址)
- HTML5基础归纳(2)--常遇到的兼容问题及解决办法
- 【Java面试知识】异常
- leetcode(查找数组中元素位置)
- 关于vue resource post 参数传不过去
- 学习总结:
- 大数据伪分布式环境搭建hadoop+zookeeper+hive+sqoop+hbase
- 剑指offer——26.二叉搜索树与双向链表
- 日期类定义
- 16.Hadoop架构再探讨第1部分
- java无法调用webservice