原文鏈接: JDK動態(tài)代理實(shí)現(xiàn)機(jī)制   轉(zhuǎn)載請注明出處!

===========================================

本文只對JDK動態(tài)代理的底層實(shí)現(xiàn)進(jìn)行分析,如需了解代理模式和動態(tài)代理的使用請移步:設(shè)計(jì)模式—代理模式     動態(tài)代理的兩種實(shí)現(xiàn)方式(JDK/Cglib)

在讀代碼之前先清楚兩個(gè)概念:

  1、Class類存儲的是類的所有信息,包括類的所有方法、屬性、實(shí)現(xiàn)接口等。每個(gè)類對應(yīng)一個(gè)Class對象(單例),Class對象是由classLoader加載出來的,使用雙親委派模型來保證class只會被加載一次。

  2、classLoader在加載類的時(shí)候不管class文件是從哪里來的,無論是從.class文件、網(wǎng)絡(luò)、數(shù)據(jù)庫類加載器都不關(guān)心。他只關(guān)心給他的class二進(jìn)制流是不是能夠通過校驗(yàn)。

說明:以下測試代碼和 動態(tài)代理的兩種實(shí)現(xiàn)方式(JDK/Cglib)相同

網(wǎng)友評論