類加載器與methodinterceptor接口


類加載器:

JVM將類加載過程分為三個步驟:

裝載(Load):加載二進制文件

鏈接(Link)進行了驗證:驗證文件准確性

准備:將靜態變量進行分配內存,初始化其默認值。

解析:符號引用轉換為直接引用

初始化(Initialize): 為靜態變量賦予正確的值;

 

1)Bootstrap ClassLoader

負責加載$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++實現,不是ClassLoader子類

2)Extension ClassLoader

負責加載java平台中擴展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目錄下的jar包

3)App ClassLoader

負責記載classpath中指定的jar包及目錄中class

4)Custom ClassLoader

屬於應用程序根據自身需要自定義的ClassLoader,如tomcat、jboss都會根據j2ee規范自行實現ClassLoader

加載過程中會先檢查類是否被已加載,檢查順序是自底向上,從Custom ClassLoader到BootStrap ClassLoader逐層檢查,只要某個classloader已加載就視為已加載此類,保證此類只所有ClassLoader加載一次。而加載的順序是自頂向下,也就是由上層來逐層嘗試加載此類。

MethodInterceptor接口

繼承Interceptor

intercept方法參數解釋:(猜測)

Object intercept(

Object obj, 我推測實現原理還是依靠繼承增強就是靜態的那種。這個就是自己創建的那個類,每次都自己來一把。

Method method, 目標對象方法

Object[] objs,  目標對象方法的參數

MethodProxy methodProxy 代理的方法

)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM