尽管在这样的定义与分类下Java不是动态语言, 它却有着一个非常突出的动态相关机制: Reflection。这个字的意思是“反射、映象、倒 影”,用在Java身上指的是我们可以于运行时加 载、探知、使用编译期间完全未知的classes。换 句话说,Java程序可以加载一个运行时才得知名 称的class,获悉其完整构造(但不包括 methods定义),并生成其对象实体、或对其 fields设值、或唤起其methods。这种“看透 class”的能力(the ability of the program to examine itself)被称为introspection(内省、 内观、反省)。Reflection和introspection是常 被并提的两个术语。
protected void java.lang.Object.finalize() throws java.lang.Throwable public final void java.lang.Object.wait() throws java.lang.InterruptedException public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException public boolean java.lang.Object.equals(java.lang.Object) public java.lang.String java.lang.Object.toString() public native int java.lang.Object.hashCode() public final native java.lang.Class java.lang.Object.getClass() protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException public final native void java.lang.Object.notify() public final native void java.lang.Object.notifyAll() private static native void java.lang.Object.registerNatives()