本文承接上一篇:樂字節Java發射之二:實例化對象、接口與父類、修飾符和屬性java
繼續講述Java反射之三:方法、數組、類加載器c++
獲取全部方法(包括父類或接口),使用Method便可。
segmentfault
public static void test() throws Exception { Class<?> clz = Class.forName("com.shsxt.ref.simple.User "); //獲取屬性 System.out.println("===============本類方法==============="); // 取得所有公共方法 Method[] methods =clz.getMethods(); for(Method m:methods){ //一、權限 int mod=m.getModifiers(); System.out.print(Modifier.toString(mod)+" "); //二、返回類型 Class<?> returnType=m.getReturnType(); System.out.print(returnType.getName()+" "); //三、名字 String name =m.getName(); System.out.print(name +"("); //四、參數 Class<?>[] para=m.getParameterTypes(); for(int i=0;i<para.length;i++){ Class<?> p =para[i]; System.out.print(p.getName() +" arg"+i); if(i!=para.length-1){ System.out.print(","); } } //異常 Class<?>[] exce=m.getExceptionTypes(); if(exce.length>0){ System.out.print(") throws "); for(int k=0;k<exce.length;++k){ System.out.print(exce[k].getName()+" "); if(k<exce.length-1){ System.out.print(","); } } }else{ System.out.print(")"); } System.out.println(); } }
操做數組須要藉助Array類。數組
//一、建立數組 Object obj =Array.newInstance(int.class, 5); //二、獲取大小 if(obj.getClass().isArray()){ //三、判斷是否爲數組 System.out.println(Array.getLength(obj)); //四、設置值 Array.set(obj,0, 100); //五、獲取值 System.out.println(Array.get(obj,0)); }
在java中有三種類類加載器:spa
⑴Bootstrap ClassLoader 此加載器採用c++編寫,通常開發中不多見。code
⑵Extension ClassLoader 用來進行擴展類的加載,通常對應的是jrelibext目錄中的類對象
⑶AppClassLoader 加載classpath指定的類,是最經常使用的加載器。同時也是java中默認的加載器。 瞭解便可。blog
public static void main(String[] args) throws Exception { System.out.println("類加載器 "+ClassLoader.class.getClassLoader().getClass().getName()); }
在一個類編譯完成以後,下一步就須要開始使用類,若是要使用一個類,確定離不開JVM。在程序執行中JVM經過裝載,連接,初始化這3個步驟完成。接口
類的裝載是經過類加載器完成的,加載器將.class文件的二進制文件裝入JVM的方法區,而且在堆區建立描述這個類的java.lang.Class對象。用來封裝數據。 可是同一個類只會被類裝載器裝載一次。生命週期
連接就是把二進制數據組裝爲能夠運行的狀態。連接分爲校驗,準備,解析這3個階段
一、校驗通常用來確認此二進制文件是否適合當前的JVM(版本),
二、準備就是爲靜態成員分配內存空間。並設置默認值
三、解析指的是轉換常量池中的代碼做爲直接引用的過程,直到全部的符號引用均可以被運行程序使用(創建完整的對應關係)
完成以後,類型也就完成了初始化,初始化以後類的對象就能夠正常使用了,直到一個對象再也不使用以後,將被垃圾回收。釋放空間。當沒有任何引用指向Class對象時就會被卸載,結束類的生命週期。
樂字節原創,歡迎繼續關注 樂字節