Java知识点总结(反射-反射机制性能问题)
@(Java知识点总结)[Java, 反射]
性能相关注意点:
setAccessible
- 启用和禁用访问安全检查的开关,值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。__并不是为true就能访问为false就不能访问__。
- 禁止安全检查,可以提高反射的运行速度。
测试示例:
import java.lang.reflect.Method;
/**
* 反射性能测试
* @author Administrator
*
*/
public class Test05 {
public static void test1(){
Student student = new Student();
long startTime = System.currentTimeMillis();
for (int i = 0; i < 1000000000; i++) {
student.setName("张三");
}
long endTime = System.currentTimeMillis ();
System.out.printf("调用普通方法,执行1亿次,耗时%dms\n",endTime-startTime);
}
public static void test2(){
try {
Student student = new Student();
Method m = student.getClass().getMethod("setName", String.class);
long startTime = System.currentTimeMillis();
for (int i = 0; i < 1000000000; i++) {
m.invoke(student,"张三");
}
long endTime = System.currentTimeMillis();
System.out.printf("调用反射方法,执行1亿次,耗时%dms\n",endTime-startTime);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
test1(); //41ms
test2(); //1826ms
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。