
第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>改屬性值
動态代理
動态代理,在程式運作中産生對象。
好了,歡迎在留言區留言,與大家分享你的經驗和心得。
感謝你學習今天的内容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。
作者簡介
達叔,理工男,簡書作者&全棧工程師,感性理性兼備的寫作者,個人獨立開發者,我相信你也可以!閱讀他的文章,會上瘾!,幫你成為更好的自己。長按下方二維碼可關注,歡迎分享,置頂尤佳。
感謝!承蒙關照!您真誠的贊賞是我前進的最大動力!
版權聲明: 本部落格所有文章除特别聲明外,均采用 CC BY-NC-SA 3.0 許可協定。轉載請注明出處!