天天看點

第89節:Java中的反射技術

第89節:Java中的反射技術
第89節:<code>Java</code>中的反射技術

反射技術是動态的擷取指定的類,和動态的調用類中的内容(沒有類前就可以建立對象,将對象的動作完成,這就是動态的擷取指定的類)。

配置檔案把具體實作的類名稱定義到配置檔案中。

反射技術的作用可以提高程式的擴充性。

<code>Object</code>類

<code>clone()</code> 用于建立并傳回此對象的一個副本

<code>equals(Object obj)</code> 用于訓示其他某個對象是否與這個對象“相等”

<code>getClass()</code> 用于傳回此<code>Object</code>的運作時類

<code>hashCode()</code> 用于傳回該對象的哈希碼值

<code>notify()</code> 用于喚醒在此對象螢幕上等待的單個線程

<code>notifyAll()</code> 用于喚醒在此對象螢幕上等待的單個線程

<code>notifyAll()</code> 用于喚醒在此對象螢幕上等待的所有線程

<code>toString()</code> 用于傳回該對象的字元串

要擷取某檔案中的成員,就要先擷取某檔案的對象

擷取構造函數

擷取字段

擷取方法

反射技術是這樣的以前先有類,才<code>new</code>對象,現在有了它之後,先<code>new</code>對象,把建立對象的動作做完,接着才在配置檔案中添加哪個類。

當我們使用的類不明确時,通過配置檔案告訴應用程式即可。

類加載的概述:

如果某個類被這個程式使用時,如果這個類沒有被加載到記憶體中,就會由系統通過加載,連接配接,初始化三個步驟實作這個類并對其進行初始化。

加載是由記憶體進行<code>class</code>檔案的讀取,簡單來說就是<code>class</code>檔案讀入記憶體中,接着建立一個<code>Class</code>對象,任何類被使用的時候,由系統建立一個<code>Class</code>對象。(<code>class</code>檔案加載到記憶體中)

連接配接:驗證,準備,解析

驗證内部結構是否正确

準備是否為類的靜态成員配置設定記憶體,并設定預設的初始化值

解析是将類的二進制資料中的符号引用換為直接引用哦

初始化進行初始化的操作

類加載器的概念

類加載器是把<code>.class</code>檔案加載到記憶體中,并生成對應的<code>Class</code>對象。

類加載器的分類有哪些?

<code>Bootstrap ClassLoader</code> 根類加載器

<code>Extension ClassLoader</code> 擴充類加載器

<code>System ClassLoader</code> 系統類加載器

描述其作用:

反射

三種方式:

<code>Class.forName()</code>讀取配置檔案

通過反射擷取帶參構造方法
反射擷取成員變量
泛型
<code>propertyName</code>改屬性值
動态代理
動态代理,在程式運作中産生對象。

好了,歡迎在留言區留言,與大家分享你的經驗和心得。

感謝你學習今天的内容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。

作者簡介

達叔,理工男,簡書作者&amp;全棧工程師,感性理性兼備的寫作者,個人獨立開發者,我相信你也可以!閱讀他的文章,會上瘾!,幫你成為更好的自己。長按下方二維碼可關注,歡迎分享,置頂尤佳。

感謝!承蒙關照!您真誠的贊賞是我前進的最大動力!

版權聲明: 本部落格所有文章除特别聲明外,均采用 CC BY-NC-SA 3.0 許可協定。轉載請注明出處!