運行時類型信息
1.RTTI,它假設我們在編譯時已經(jīng)知道了所有的類型信息勒虾。使用rtti可以查詢基類引用所指向的對象的確切類型
2.反射,它允許我們在運行時發(fā)現(xiàn)和使用類的信息
關于rtti
java文件被編譯成class文件,類加載器將class文件動態(tài)加載到jvm中土涝,一旦某個class文件被加載到內(nèi)存江醇,它就被用來創(chuàng)建這個類的所有對象濒憋。
class對象
可以使用類名.class獲取該類的引用。
class引用表示的是它所指向的對象的確切類型陶夜。而該對象就是class類的一個對象凛驮。
反射
利用rtti識別類型有一個限制,就是這個類型在編譯期間必須已知条辟。
然而黔夭,反射提供了一種機制,即用來檢查可用的方法捂贿,并返回方法名纠修。
rtti和反射的區(qū)別:對于rtti編譯器在編譯時打開和檢查.class文件;對于反射.class文件再編譯時是不可獲取的厂僧,它是再運行時打開和檢查.class文件的