Java從入門到神經病院(七)-反射的基本理解

 

JAVA內存結構:程序運行時 JVM 對內存的管理與分配 (下圖是內存結構)

JAVA內存模型:共享內存中 多線程 讀寫操作的行爲規範

Java虛擬機規範:

Java SE8:鏈接:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.4

 

JAVA  反射示意圖:

反射原理:通過創建.class 文件裝載到JVM時創建 .class文件對應的類對象來獲取類的成員的過程

 

1.獲取Class 對象的3種方法:

User user = new User(); //用戶類
Class clazz= user.getClass();
Class clazz1=User.class;
Class clazz3= Class.forName("reflection.demo.User");
Class clazz4= Class.forName("reflection.demo.User",false,clazz1.getClassLoader());
Class clazz5= Class.forName("reflection.demo.User",true,clazz1.getClassLoader());

2.獲取類的 字段:

//獲取類的public 修飾的字段:

Field[] fields= clazz1.getFields();
for(Field field:fields){
    System.out.println(field);
}

//獲取類的所有修符修飾字段:

Field[] fields2= clazz1.getDeclaredFields();
for(Field field2:fields2){
    System.out.println(field2);
}

3.獲取類的方法:

Method[] methods = clazz1.getMethods(); for(Method method:methods){ System.out.println(method); } System.out.println("==獲取所有public Method start=="); System.out.println("==獲取所有 Method start=="); Method[] methods2 = clazz1.getDeclaredMethods(); for(Method method2:methods2){ System.out.println(method2); }

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章