成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java面試題:類加載器

sshe / 1433人閱讀

摘要:面試題類加載器類加載器源代碼文件通過編譯成字節(jié)碼文件后,需要被加載到虛擬機的內(nèi)存空間中使用,這個過程就是類加載。該類加載器在此目錄里面查找并加載類。每一個類加載器都有一個父裝載器。引導類加載器處理完成后,把剩下的給擴展類加載器。

面試題:類加載器 1. Java類加載器

Java源代碼.java文件通過編譯成字節(jié)碼.class文件后,需要被加載到Java虛擬機的內(nèi)存空間中使用,這個過程就是類加載。類加載依靠的是Java類加載器

Java類加載器是Java運行時環(huán)境的一部分,負責動態(tài)加載Java類到Java虛擬機的內(nèi)存空間中。類通常是按需加載的,即第一次使用該類時才加載。由于有了類加載器,Java運行時系統(tǒng)不需要知道文件的位置與文件系統(tǒng)。

2. JVM的3個默認類加載器

引導(Bootstrap)類加載器。由原生代碼C語言編寫,不繼承java.lang.ClassLoader。負責加載核心Java庫,存儲在/jre/lib目錄中。

擴展(Extensions)類加載器。用來在指明的目錄中加載Java的擴展類。Java虛擬機的實現(xiàn)會提供一個擴展庫目錄。該類加載器在此目錄里面查找并加載Java類。該類由sun.misc.Launcher$ExtClassLoader實現(xiàn)。

Apps類加載器(也稱系統(tǒng)類加載器)。根據(jù)Java應(yīng)用程序的類路徑來加載Java類。一般來說,Java應(yīng)用程序的類都是由它來完成加載的,可以通過ClassLoader.getSystemClassLoader()來獲取它。該類由sun.misc.Launcher$AppClassLoader來實現(xiàn)。

每一個類加載器都有一個父裝載器(parent class loader)。

3. 如何保證一個類被加載一次

全盤負責委托機制

解釋:當一個ClassLoader加載一個Class的時候,這個Class所依賴的和引用的其他Class通常也是由這個classloader負責載入的。例如加載一個普通的Demo類,Apps類加載器首先拿到這個類的class文件,先讓parent(父)類加載器也就是擴展(Extensions)類加載器處理。擴展(Extensions)類加載器拿到class文件后同樣先讓parent(父)類加載器處理,也就是引導(Bootstrap)類加載器會先處理屬于它應(yīng)該加載的部分。引導類加載器處理完成后,把剩下的給擴展類加載器。擴展類加載器處理屬于它的內(nèi)容,將剩下的部分交給Apps類加載器,Apps類加載器會加載剩下的全部內(nèi)容。

每個類加載器只會加載自己負責的部分。

這樣每個類只會被加載一次。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74265.html

相關(guān)文章

  • 面試加載

    摘要:面試題類加載器類加載器源代碼文件通過編譯成字節(jié)碼文件后,需要被加載到虛擬機的內(nèi)存空間中使用,這個過程就是類加載。該類加載器在此目錄里面查找并加載類。引導類加載器處理完成后,把剩下的給擴展類加載器。 面試題:類加載器 1. Java類加載器 Java源代碼.java文件通過編譯成字節(jié)碼.class文件后,需要被加載到Java虛擬機的內(nèi)存空間中使用,這個過程就是類加載。類加載依靠的是Ja...

    v1 評論0 收藏0
  • Java面試:面向?qū)ο螅?em>類加載,JDBC, Spring 基礎(chǔ)概念

    摘要:為什么不是面向?qū)ο蟛皇敲嫦驅(qū)ο?,因為它包含個原始數(shù)據(jù)類型,例如。自定義類加載器繼承的自定義類加載器。可以像下面這樣指定參數(shù)面試題面向?qū)ο?,類加載器,基礎(chǔ)概念它們的關(guān)系如下啟動類加載器,實現(xiàn),沒有父類。自定義類加載器,父類加載器為。 1. 為什么說Java是一門平臺無關(guān)語言? 平臺無關(guān)實際的含義是一次編寫到處運行。Java 能夠做到是因為它的字節(jié)碼(byte code)可以運行在任何操作...

    Euphoria 評論0 收藏0
  • Java面試:面向?qū)ο螅?em>類加載,JDBC, Spring 基礎(chǔ)概念

    摘要:為什么不是面向?qū)ο蟛皇敲嫦驅(qū)ο?,因為它包含個原始數(shù)據(jù)類型,例如。自定義類加載器繼承的自定義類加載器。可以像下面這樣指定參數(shù)面試題面向?qū)ο?,類加載器,基礎(chǔ)概念它們的關(guān)系如下啟動類加載器,實現(xiàn),沒有父類。自定義類加載器,父類加載器為。 1. 為什么說Java是一門平臺無關(guān)語言? 平臺無關(guān)實際的含義是一次編寫到處運行。Java 能夠做到是因為它的字節(jié)碼(byte code)可以運行在任何操作...

    longmon 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<