摘要:一類加載器什么是類加載器,作用是什么類加載器就加載字節碼文件類加載器的種類類加載器有三種,不同類加載器加載不同的引導類加載器加載都是最基礎的文件擴展類加載器加載都是基礎的文件應用類加載器三方包和自己編寫文件怎么獲得類加載器重點字節碼對象二注
一、類加載器
1.什么是類加載器,作用是什么?
類加載器就加載字節碼文件(.class)
2.類加載器的種類
類加載器有三種,不同類加載器加載不同的
1)BootStrap:引導類加載器:加載都是最基礎的文件
2)ExtClassLoader:擴展類加載器:加載都是基礎的文件
3)AppClassLoader:應用類加載器:三方jar包和自己編寫java文件
怎么獲得類加載器?(重點)
ClassLoader 字節碼對象.getClassLoader();
二、注解 @xxx
1.什么是注解,注解作用
注解就是符合一定格式的語法 @xxxx
注解作用:
注釋:在閱讀程序時清楚----給程序員看的
注解:給jvm看的,給機器看的
注解在目前而言最主流的應用:代替配置文件
關于配置文件與注解開發的優缺點:
注解優點:開發效率高 成本低
注解缺點:耦合性大 并且不利于后期維護
2.jdk5提供的注解
@Override:告知編譯器此方法是覆蓋父類的
@Deprecated:標注過時
@SuppressWarnings:壓制警告
發現的問題:
不同的注解只能在不同的位置使用(方法上、字段上、類上)
3.自定義注解(了解)
1)怎樣去編寫一個自定義的注解
2)怎樣去使用注解
3)怎樣去解析注解-----使用反射知識
(1)編寫一個注解
關鍵字:@interface
注解的屬性:
語法:返回值 名稱();
注意:如果屬性的名字是value,并且注解的屬性值有一個 那么在使用注解時可以省略value
注解屬性類型只能是以下幾種
1.基本類型
2.String 3.枚舉類型 4.注解類型 5.Class類型 6.以上類型的一維數組類型
(2)使用注解
在類/方法/字段 上面是@XXX
(3)解析使用了注解的類
介入一個概念:元注解:代表修飾注解的注解,作用:限制定義的注解的特性
@Retention
SOURCE: 注解在源碼級別可見
CLASS:注解在字節碼文件級別可見
RUNTIME:注解在整個運行階段都可見
@Target
代表注解修飾的范圍:類上使用,方法上使用,字段上使用
FIELD:字段上可用此注解
METHOD:方法上可以用此注解
TYPE:類/接口上可以使用此注解
注意:要想解析使用了注解的類 , 那么該注解的Retention必須設置成Runtime
關于注解解析的實質:從注解中解析出屬性值
字節碼對象存在于獲得注解相關的方法
isAnnotationPresent(Class extends Annotation> annotationClass) : 判斷該字節碼對象身上是否使用該注解了
getAnnotation(Class annotationClass) :獲得該字節碼對象身上的注解對象
三、動態代理
1.什么是代理(中介)
目標對象/被代理對象 ------ 房主:真正的租房的方法
代理對象 ------- 黑中介:有租房子的方法(調用房主的租房的方法)
執行代理對象方法的對象 ---- 租房的人
流程:我們要租房----->中介(租房的方法)------>房主(租房的方法)
抽象:調用對象----->代理對象------>目標對象
2.動態代理
動態代理:不用手動編寫一個代理對象,不需要一一編寫與目標對象相同的方法,這個過程,在運行時 的內存中動態生成代理對象。------字節碼對象級別的代理對象
動態代理的API:
在jdk的API中存在一個Proxy中存在一個生成動態代理的的方法newProxyInstance
static Object newProxyInstance(ClassLoader loader, Class>[] interfaces, InvocationHandler h)
返回值:Object就是代理對象
參數:loader:代表與目標對象相同的類加載器-------目標對 象.getClass().getClassLoader()
interfaces:代表與目標對象實現的所有的接口字節碼對象數組
h:具體的代理的操作,InvocationHandler接口
注意:JDK的Proxy方式實現的動態代理 目標對象必須有接口 沒有接口不能實現jdk版動態代理
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72534.html
摘要:開公眾號差不多兩年了,有不少原創教程,當原創越來越多時,大家搜索起來就很不方便,因此做了一個索引幫助大家快速找到需要的文章系列處理登錄請求前后端分離一使用完美處理權限問題前后端分離二使用完美處理權限問題前后端分離三中密碼加鹽與中異常統一處理 開公眾號差不多兩年了,有不少原創教程,當原創越來越多時,大家搜索起來就很不方便,因此做了一個索引幫助大家快速找到需要的文章! Spring Boo...
摘要:會讓初學者的你少踩很多坑大實話,如果你已經掌握了開發的基礎部分,請耐心等待后續的進階階段。下面開始我們環境的安裝配置。下載完成之后會是文件。要注意在已有的里面要加上表示另一個。到這里我們就完成了環境的配置,接下來我們在命令行中進行驗證。 showImg(https://segmentfault.com/img/bVbapC7?w=475&h=285); 首先歡迎大家來學習JavaWeb...
摘要:張三標簽可以自定義。區非法字符嚴格地講,在中僅有字符和是非法的。添加包依賴在查找指定節點的時候,根據語法規則來查找后續的代碼與以前的解析代碼一樣。這在生活中是不可能出現的。元素的格式化情況。網頁游戲,優點客戶端只要有瀏覽器就可以了。 1.Xml概念 eXtendsible markup language 可擴展的標記語言 2.XML 有什么用? 1.可以用來保存數據 2.可以用來...
閱讀 1733·2021-11-24 10:18
閱讀 2207·2021-11-18 13:20
閱讀 2332·2021-08-23 09:46
閱讀 993·2019-08-30 15:56
閱讀 2840·2019-08-30 15:53
閱讀 738·2019-08-30 14:22
閱讀 470·2019-08-29 15:34
閱讀 2532·2019-08-29 12:14