第三章 JavaSE 高级
一、Java中的反射
- 说说你对 Java 中反射的理解
Java 中 的 反 射 首 先 是 能 够 获 取 到 Java 中 要 反 射 类 的 字 节 码 , 获 取 字 节 码 有 三 种 方 法 , 1.Class.forName(className) 2.类名.class 3.this.getClass()。然后将字节码中的方法,变量,构造函数等映射成 相应的 Method、Filed、Constructor 等类,这些类提供了丰富的方法可以被我们所使用。
二、Java中的动态代理
- 写一个 ArrayList 的动态代理类(笔试题)
final List list = new ArrayList();
List proxyInstance = (List)Proxy.newProxyInstance(list.getClass().getClassLoader(), list.getClass().getInterfaces(),
new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return method.invoke(list, args);
}
});
proxyInstance.add(“你好”);