Java面試題之JavaSE高級

一、Java中的反射

????1.說說你對Java中反射的理解? ? ? ?

? ? ? ? ? ? java中的反射首先是能夠獲取到Java中要反射類的字節(jié)碼,獲取字節(jié)碼有三種方法。

? ? ? ? ? ? ? ? ? ? ? ? 1.Class.forName(className)?

? ? ? ? ? ? ? ? ? ? ? ? 2.類名.class

? ? ? ? ? ? ? ? ? ? ? ? 3.this.getClass。然后將字節(jié)碼中的方法,變量,構(gòu)造函數(shù)等映射成相應(yīng)Method.Filed.Constructor等類

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這些類提供了豐富的方法可以被我們使用

二、Java中的動態(tài)代理

1.動靜代理的區(qū)別,什么場景使用

? ? ? ? ? ? 靜態(tài)代理通常只代理一個類,動態(tài)代理是代理一個接口下的多個實現(xiàn)類

? ? ? ? ? ? 靜態(tài)代理事先知道代理的是什么,而動態(tài)代理不需要知道代理什么東西,只有在運行時才知道

? ? ? ? ? ? 動態(tài)代理是實現(xiàn)JDK里的InvocationHandler接口的invoke方法,但注意的是代理的是接口,也就是業(yè)務(wù)類要實現(xiàn)的接口

? ? ? ? ? ? ? ? ,通過Proxy里的newProxyInstance得到代理對象

? ? ????還有一種動態(tài)代理,CGLIB代理的類,不需要業(yè)務(wù)類繼承接口,通過派生的子類實現(xiàn)代理,通過在運行時,動態(tài)修改,字節(jié)碼達(dá)到修改類的目的

AOP編程就是基于動態(tài)代理實現(xiàn)的,比如著名的Spring框架,Hibernate框架等等都是動態(tài)代理的使用例子


三、Java中的類加載器

? ? ? ? 1、Java中類加載器的種類有哪些

? ? ? ? ? ? ? ? ? ? 1.? ?根類的加載器(Bootstrap)----C++寫的,看不到源碼

? ? ? ? ? ? ? ? ? ? 2.擴展類加載器,(Extension)--加載位置:jre\lib\ext中

? ? ? ? ? ? ? ? ? ? 3.系統(tǒng)(應(yīng)用)類加載器(System\App) ---加載位置:classpath中

? ? ? ? ? ? ? ? ? ? 4.自定義加載器(必須繼承ClassLoader)

????????2、類什么時候初始化????????????

? ? ? ? ? ? ? ? 1)創(chuàng)建類的實例,也就是new一個對象

????????????????2)訪問某個類或接口的靜態(tài)變量,或者對該變量賦值

? ? ? ? ? ? ? ? 3)調(diào)用類的靜態(tài)方法

? ? ? ? ? ? ? ? 4)反射

? ? ? ? ? ? ????5)初始化一個類的子類(會首先初始化子類的父類)

? ? ? ? ? ? ????6)JVM啟動時標(biāo)明的啟動類,即文件名和類名相同的類

? ? ? ? ? ? ? ? ? ? ? ? ? ? 只有這六種情況,才會導(dǎo)致類的初始化

? ? ? ? 初始化化的步驟

? ? ? ? ? ? ? ? 1)如果這個類還沒有被加載和連接,那先進(jìn)性加載和連接

? ? ? ? ? ? ? ? 2)?加入這個類存在直接父類,并且這個類還沒有被初始化,(注意:一個類加載器中,類只能初始化一次)。那就初始化直接的父類(不使用于接口)

? ? ? ? ? ? 3).加入類中存在的初始化語句(如static變量和static塊),那就一次執(zhí)行初始化語句


? ? ? ? ? ?3.Java類加載體系之ClassLoadder雙親委派機制(這個在后面會有專門的文章進(jìn)行講解)




4、獲得一個對象有哪些方式?

類型.class? 例如:String.class

對象.getClass

Class.forName,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,241評論 0 62
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,626評論 18 399
  • 中午吃飯,元旦回老家的同事說:“她又被催生了?一回家就各種催,催她生孩子。說又老了一歲你不著急嗎?”現(xiàn)在的年輕人都...
    柳絮XM閱讀 400評論 0 6
  • 18歲,遇見他很遺憾并沒有一見鐘情還有點討厭,那個時候覺得他是我一輩子都不可能喜歡的類型。如果世界上只剩我們倆...
    豆子長大了閱讀 412評論 0 3

友情鏈接更多精彩內(nèi)容