final & finally & finalize
final:最终的意思,可以修饰类,修饰成员变量,修饰成员方法
修饰类:类不能被继承
修饰变量:变量是常量
修饰方法:方法不能被重写(Override)
(2)finally:是异常处理的关键字,用于释放资源。一般来说,代码必须执行(特殊情况:在执行到finally JVM就退出了)
(3)finalize:是Object的一个方法,用于垃圾回收。
反射-Reflection
Java 的反射机制是指在运行状态中:
- 对任意一个类,都能够知道这个类的所有属性和方法
- 对任意一个对象,都能调用这个对象的所有属性和方法
反射的作用
- 检查类的属性和方法
- 在运行时检查对象的类型
- 动态构造某个类的对象
- 可以任意调用对象的方法
反射的使用
- java.lang.reflect 包中的三个类
Field:成员变量
Method:成员方法
Constructor:构造方法 - 对 public 域的方法
包括父类成员。
getField
getMethod
getConstructor - 对其他域的方法
包括 private 和 protected 的成员,但不包括父类成员。
getDeclaredField
getDeclaredMethod
getDeclaredConstructor
利用反射访问私有属性:使用 setAccessible(true)
反射的不足
性能是一个问题。反射相当于一系列解释操作,通知 Java 虚拟机要做什么,性能比直接的 Java 要慢很多。
https://www.sczyh30.com/posts/Java/java-reflection-1/
https://www.sczyh30.com/posts/Java/java-reflection-2/