反射就是對一個類進行解剖,把一個類中的各種成分映射成一個類
java程式執行位元組碼檔案的過程
1啟動jvm程序
2把所有相關的位元組碼加入記憶體(類加載器)
3.系統為每個位元組碼生成一個class對象
4初始化(靜态代碼塊)
5靜态成員變量
得到一個類的Class對象的三種方法
1:類名.class;
2:該類的一個執行個體.getClass();
3:Class.forName("該類在目前包下的路徑");
public class Demo01 {
public static void main(String[] args) throws ClassNotFoundException {
Student st=new Student();
Class c2=Student.class;
Class c3 =st.getClass();
Class c4=Class.forName("com.part1.Student");
System.out.println(c2==c3);
System.out.println(c4==c3);
//對于基本類型和包裝器類型
Integer i=120;
Class c5=Integer.class;
Class c6=i.getClass();
System.out.println(c5==c6);
Class c7=int.class;
System.out.println(c5==c7);
Class c8=Integer.TYPE;
System.out.println(c7==c8);
}
}
true
true
true
false
true
注:基本資料類型和對應的包裝器類型得到的不是同一個class對象
但是包裝器類型.Type傳回的卻是基本資料類型的對象