1. 程式人生 > 其它 >Java基礎學習:註解和反射05( 反射機制 )

Java基礎學習:註解和反射05( 反射機制 )

Java基礎學習:註解和反射05

  • 反射機制:Java Reflection

     

  • 目錄:

    • Java反射機制概述

    • 理解Class類並獲取Class例項

    • 類的載入與ClassLoader

    • 建立執行時類的物件

    • 獲取執行時類的完整結構

    • 呼叫執行時類的指定結構

 

  • 靜態 VS 動態語言:

    • 動態語言:

      • 是一種在執行時可以改變其結構的語言:例如新的函式,物件,甚至程式碼可以被引進,已有的函式可以被刪除或是其他結構上的變化。通俗點說就是在執行時,程式碼可以根據某些條件改變自身結構。

      • 主要動態語言:Object-C , c# ,JavaScript , PHP, , Python等

    • 靜態語言:

      • 與動態語言相對應的,執行時結構不可改變的語言就是靜態語言。如Java , C, C++;

      • Java不是動態語言,但Java可以稱之為”準動態語言“。即Java有一定的動態性,我們可以利用反射機制獲得類似動態語言的特性。Java的動態性讓程式設計的時候更加靈活;

 

  • Java Reflection:

    • Reflection (反射) 是Java被視為動態語言的關鍵,反射機制允許程式在執行期藉助於Reflection API 取得任何類的內部資訊,並能直接操作任意物件的內部屬性及方法;


      Class c=Class.forName("java.lang.String");
    • 載入完類後,在堆記憶體方法區中就產生了一個Class型別的物件(一個類只有一個Class物件);

      • 這個物件就包含了完整的類的結構資訊。

      • 我們可以通過這個物件看到類的結構;

      • 這個物件就像一面鏡子,透過這個鏡子看到類的結構,所以,我們形象的稱之為:反射