Class.forName("ClassName")
等效于 ClassName.class,都是获取ClassName的一个Class实例。
但是后者不会将ClassName进行实例化,但是Class.forName()则会实例化ClassName
RTTI和反射之间真正的区别:
RTTI 在编译时打开和检查.class文件
反射 .class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件
通过反射可以访问到private,protected等方法。
动态代理比静态代理的优势:
动态代理一次可以对某个类的所有函数都有效果。不需要为每个函数都写一遍代理。
而静态代理则需要为每个函数都重写一遍代理动作。
Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),new Class[] { Foo.class },handler);
本文探讨了Java中Class.forName()与ClassName.class的区别及其应用场景,分析了RTTI与反射之间的不同之处。此外还介绍了如何利用反射访问私有成员,并对比了动态代理与静态代理的特点与优势。
865

被折叠的 条评论
为什么被折叠?



