java see 方法_Java 反射常用方法
類名用途
Class類
代表類的實(shí)體,在運(yùn)行的Java應(yīng)用程序中表示類和接口
Field類
代表類的成員變量(成員變量也稱為類的屬性)
Method類
代表類的方法
Constructor類
代表類的構(gòu)造方法
Class類
Class代表類的實(shí)體,在運(yùn)行的Java應(yīng)用程序中表示類和接口。在這個(gè)類中提供了很多有用的方法,這里對(duì)他們簡單的分類介紹。
獲得類相關(guān)的方法
方法用途
asSubclass(Class clazz)
把傳遞的類的對(duì)象轉(zhuǎn)換成代表其子類的對(duì)象
Cast
把對(duì)象轉(zhuǎn)換成代表類或是接口的對(duì)象
getClassLoader()
獲得類的加載器
getClasses()
返回一個(gè)數(shù)組,數(shù)組中包含該類中所有公共類和接口類的對(duì)象
getDeclaredClasses()
返回一個(gè)數(shù)組,數(shù)組中包含該類中所有類和接口類的對(duì)象
forName(String className)
根據(jù)類名返回類的對(duì)象
getName()
獲得類的完整路徑名字
newInstance()
創(chuàng)建類的實(shí)例
getPackage()
獲得類的包
getSimpleName()
獲得類的名字
getSuperclass()
獲得當(dāng)前類繼承的父類的名字
getInterfaces()
獲得當(dāng)前類實(shí)現(xiàn)的類或是接口
獲得類中屬性相關(guān)的方法
方法用途
getField(String name)
獲得某個(gè)公有的屬性對(duì)象
getFields()
獲得所有公有的屬性對(duì)象
getDeclaredField(String name)
獲得某個(gè)屬性對(duì)象
getDeclaredFields()
獲得所有屬性對(duì)象
獲得類中注解相關(guān)的方法
方法用途
getAnnotation(Class annotationClass)
返回該類中與參數(shù)類型匹配的公有注解對(duì)象
getAnnotations()
返回該類所有的公有注解對(duì)象
getDeclaredAnnotation(Class annotationClass)
返回該類中與參數(shù)類型匹配的所有注解對(duì)象
getDeclaredAnnotations()
返回該類所有的注解對(duì)象
獲得類中構(gòu)造器相關(guān)的方法
方法用途
getConstructor(Class...> parameterTypes)
獲得該類中與參數(shù)類型匹配的公有構(gòu)造方法
getConstructors()
獲得該類的所有公有構(gòu)造方法
getDeclaredConstructor(Class...> parameterTypes)
獲得該類中與參數(shù)類型匹配的構(gòu)造方法
getDeclaredConstructors()
獲得該類所有構(gòu)造方法
獲得類中方法相關(guān)的方法
方法用途
getMethod(String name, Class...> parameterTypes)
獲得該類某個(gè)公有的方法
getMethods()
獲得該類所有公有的方法
getDeclaredMethod(String name, Class...> parameterTypes)
獲得該類某個(gè)方法
getDeclaredMethods()
獲得該類所有方法
類中其他重要的方法
方法用途
isAnnotation()
如果是注解類型則返回true
isAnnotationPresent(Class extends Annotation> annotationClass)
如果是指定類型注解類型則返回true
isAnonymousClass()
如果是匿名類則返回true
isArray()
如果是一個(gè)數(shù)組類則返回true
isEnum()
如果是枚舉類則返回true
isInstance(Object obj)
如果obj是該類的實(shí)例則返回true
isInterface()
如果是接口類則返回true
isLocalClass()
如果是局部類則返回true
isMemberClass()
如果是內(nèi)部類則返回true
Field類
Field代表類的成員變量(成員變量也稱為類的屬性)。
方法用途
equals(Object obj)
屬性與obj相等則返回true
get(Object obj)
獲得obj中對(duì)應(yīng)的屬性值
set(Object obj, Object value)
設(shè)置obj中對(duì)應(yīng)屬性值
Method類
Method代表類的方法。
方法用途
invoke(Object obj, Object... args)
傳遞object對(duì)象及參數(shù)調(diào)用該對(duì)象對(duì)應(yīng)的方法
Constructor類
方法用途
newInstance(Object... initargs)
根據(jù)傳遞的參數(shù)創(chuàng)建類的對(duì)象
=================================================================================
Java類加載器內(nèi)容的詳解:
1、類的加載
當(dāng)程序要使用某個(gè)類時(shí),如果該類還未被加載到內(nèi)存中,則系統(tǒng)會(huì)通過加載,連接,初始化三步來實(shí)現(xiàn)對(duì)這個(gè)類進(jìn)行初始化
·加載:
就是指將class文件讀入內(nèi)存,并為之創(chuàng)建一個(gè)Class對(duì)象,任何類被使用時(shí)系統(tǒng)都會(huì)建立一個(gè)Class對(duì)象
·連接:
驗(yàn)證:確保被加載類的正確性
準(zhǔn)備:負(fù)責(zé)為類的靜態(tài)成員分配內(nèi)存,并設(shè)置默認(rèn)初始化值
解析:將類中的符號(hào)引用替換為直接引用
·初始化:
局部變量保存在棧區(qū):必須手動(dòng)初始化
new 的對(duì)象保存在堆區(qū):虛擬機(jī)會(huì)進(jìn)行默認(rèn)初始化,基本數(shù)據(jù)類型初始化值為0,引用類型初始化值為null
2、類加載的時(shí)機(jī)(只加載一次)
以下時(shí)機(jī)僅表示第一次的時(shí)候
① 創(chuàng)建類的實(shí)例的時(shí)候
② 訪問類的靜態(tài)變量的時(shí)候
③ 調(diào)用類的靜態(tài)方法的時(shí)候
④ 使用反射方式來強(qiáng)制創(chuàng)建某個(gè)類或接口對(duì)應(yīng)的java.lang.Class對(duì)象
⑤ 初始化某個(gè)類的子類的時(shí)候
⑥ 直接使用java.exe命令來運(yùn)行某個(gè)主類
3、類加載器
負(fù)責(zé)將.class文件加載到內(nèi)存中,并為之生成對(duì)應(yīng)的Class對(duì)象
雖然我們?cè)陂_發(fā)過程中不需要關(guān)心類加載機(jī)制,但是了解這個(gè)機(jī)制我們就能更好的理解程序的運(yùn)行
4、類加載器的組成:
①Bootstrap ClassLoader 根類加載器
也被稱為引導(dǎo)類加載器,負(fù)責(zé)Java核心類的加載,比如System類,在JDK中JRE的lib目錄下rt.jar文件中的類
②Extension ClassLoader 擴(kuò)展類加載器
負(fù)責(zé)JRE的擴(kuò)展目錄中jar包的加載,在JDK中JRE的lib目錄下ext目錄
③System ClassLoader 系統(tǒng)類加載器
負(fù)責(zé)在JVM啟動(dòng)時(shí)加載來自java命令的class文件,以及classpath環(huán)境變量所指定的jar包和類路徑,主要是我們開發(fā)者自己寫的類。
總結(jié)
以上是生活随笔為你收集整理的java see 方法_Java 反射常用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net core 5 IIS Api网
- 下一篇: 信用卡分期哪个银行最优惠 比一比见分晓