参考答案
位置不同 1. throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的是异常对象。 功能不同: 1. throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方式;throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。也就是说 throw 语句独立存在时,下面不要也不能定义其他语句,因为执行不到且语法会报错。 2. throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常,执行 throw 则一定抛出了某种异常对象。 3. 两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
参考答案
Error 类和 Exception 类的父类都是 Throwable 类,他们的区别如下: Error 类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。 Exception 类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止运行。 Exception 类又分为运行时异常(Runtime Exception)和受检查的异常 (Checked Exception ),运行时异常;编译能通过,但是一运行就终止了,程序不会处理运行时异常,出现这类异常,程序会终止。而受检查的异常,要么用 try。catch 捕获,要么用 throws 字句声明抛出,交给它的调用类处理,否则编译不会通过。
参考答案
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界)
NullPointerException(空指针)
ArrayIndexOutOfBoundsException (用非法索引访问数组时抛出的异常)
ArithmeticException (当出现异常的运算条件时,抛出此异常)
IllegaArguementException(抛出的异常表明向方法传递了一个不合法或不正确的参数。)
参考答案
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。 finally:异常处理语句结构的一部分,表示总是执行。 finalize:是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM 不保证此方法总被调用。
参考答案
会执行,在 return 之后。
参考答案
异常捕捉:try…catch…finally, 异常抛出:throw throws
参考答案
使用 Java 反射可以创建对象。
参考答案
通过 new 创建对象的效率比较高。通过反射时,先找查找类资源,使用类加载器创建,过程比较繁琐,所以效率较低。
参考答案
jdbc 就是典型的反射,Class.forName('com.mysql.jdbc.Driver');//加载 MySQL 的驱动类。 还有就是,如 MyBatis、Spring 等框架使用反射实现的。
参考答案
Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径和方法。 Annatation(注解)是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation 对象,然后通过该 Annotation 对象来获取注解中的元数据信息