反射:
在 Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的
属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;
这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制。
获取 Class 对象的 3 种方法 :
1.调用某个对象的 getClass()方法
Person p=new Person();
Class clazz=p.getClass();
2.调用某个类的 class 属性来获取该类对应的 Class 对象
Class clazz=Person.class;
3.使用 Class 类中的 forName()静态方法(最安全/性能最好)
Class clazz=Class.forName("类的全路径"); (最常用)
Java 的异常:
Throwable 是所有 Java 程序中错误处理的父类,有两种资类:Error 和Exception。
Error:表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重
错误,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶
多只能显示错误信息。
Exception:表示可恢复的例外,这是可捕捉到的。
1.运行时异常:都是 RuntimeException 类及其子类异常,
如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,
这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序
逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是
Java 编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用 try-catch
语句捕获它,也没有用 throws 子句声明抛出它,也会编译通过。
2.非运行时异常(编译异常):是 RuntimeException 以外的异常,类型上都属于 Exception
类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。
如 IOException、SQLException 等以及用户自定义的 Exception 异常,一般情况下不自定
义检查异常。