java 反射.问题_Java知识点总结(反射-反射机制性能问题)
Java知識點總結(反射-反射機制性能問題)
@(Java知識點總結)[Java, 反射]
性能相關注意點:
setAccessible
啟用和禁用訪問安全檢查的開關,值為 true 則指示反射的對象在使用時應該取消 Java 語言訪問檢查。值為 false 則指示反射的對象應該實施 Java 語言訪問檢查。__并不是為true就能訪問為false就不能訪問__。
禁止安全檢查,可以提高反射的運行速度。
可以考慮使用:cglib/javaassist字節碼操作
測試示例:
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
}
}
總結
以上是生活随笔為你收集整理的java 反射.问题_Java知识点总结(反射-反射机制性能问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中no1_Java程序设计实验(
- 下一篇: oracle 如何 更改 ref cur