中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java之jvm加載器使用方法

發布時間:2021-03-03 17:14:19 來源:億速云 閱讀:139 作者:TREX 欄目:開發技術

這篇文章主要講解了“java之jvm加載器使用方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java之jvm加載器使用方法”吧!

在java的學習中,對于jvm模塊我們會不斷補充一些知識點,畢竟jvm是比較重要的一個組成部分。本篇圍繞jvm加載器展開介紹,在加載類的時候,我們的加載器會逐個進行工作,在具體的加載器類型上,想必大家還不是很清楚。下面我們就java之jvm加載器的4中類型帶來介紹。

1、Bootstrap ClassLoader (引導類加載器)

負責加載$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++實現的核心庫,也就是JVM調用每個系統的API實現系統功能,實現跨平臺的主要模塊,不是ClassLoader子類。開發者不能直接使用。

2、Extension ClassLoader (擴展類加載器)

負責加載java平臺中擴展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目錄下的jar包,開發者可以直接使用。

3、Application ClassLoader (應用加載)

負責記載classpath中指定的jar包及目錄中class。根據需要,通過class的全限定名來加載類,可以通過classLoader.getSystemClassLoader()來獲取它。

4、Custom ClassLoader (用戶加載器)

屬于應用程序根據自身需要自定義的ClassLoader,繼承java.lang.classLoader類。如tomcat、jboss都會根據j2ee規范自行實現ClassLoader。

實例擴展:

根類加載器(BootstrapLoader)

package jvmTest;

import java.net.URL;

import sun.misc.Launcher;

public class Boot {
  public static void main(String[] args) {
    /*
     * 這里有可能報錯 Access restriction: The type 'Launcher' is not API
     * 只需要將 全局屬性Project>preferences>java>Compiler>Errors/Warnings>
     * 把右側的【Deprecated and restricted API>Forbidden reference的Error】置為【Warning】.
     */
    URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();
    for(int i = 0; i < urls.length; i++) {
      System.out.println(urls[i].toExternalForm());
    }
  }
}

當類被加載之后,系統為之生成一個對應的Class對象,接著將會進入連接階段,連接階段負責把類的二進制數據合并到JRE中。類連接又可分為如下3個階段。

驗證:驗證階段用于檢驗被加載的類是否有正確的內部結構,并和其他類協調一致。Java是相對C++語言是安全的語言,例如它有C++不具有的數組越界的檢查。這本身就是對自身安全的一種保護。驗證階段是Java非常重要的一個階段,它會直接的保證應用是否會被惡意入侵的一道重要的防線,越是嚴謹的驗證機制越安全。驗證的目的在于確保Class文件的字節流中包含信息符合當前虛擬機要求,不會危害虛擬機自身安全。其主要包括四種驗證,文件格式驗證,元數據驗證,字節碼驗證,符號引用驗證。

四種驗證做進一步說明:

  1. 文件格式驗證:主要驗證字節流是否符合Class文件格式規范,并且能被當前的虛擬機加載處理。例如:主,次版本號是否在當前虛擬機處理的范圍之內。常量池中是否有不被支持的常量類型。指向常量的中的索引值是否存在不存在的常量或不符合類型的常量。

  2. 元數據驗證:對字節碼描述的信息進行語義的分析,分析是否符合java的語言語法的規范。

  3. 字節碼驗證:最重要的驗證環節,分析數據流和控制,確定語義是合法的,符合邏輯的。主要的針對元數據驗證后對方法體的驗證。保證類方法在運行時不會有危害出現。

  4. 符號引用驗證:主要是針對符號引用轉換為直接引用的時候,是會延伸到第三解析階段,主要去確定訪問類型等涉及到引用的情況,主要是要保證引用一定會被訪問到,不會出現類等無法訪問的問題。

感謝各位的閱讀,以上就是“java之jvm加載器使用方法”的內容了,經過本文的學習后,相信大家對java之jvm加載器使用方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾西县| 大城县| 随州市| 监利县| 东丽区| 九寨沟县| 达尔| 广东省| 衢州市| 阿克| 钟祥市| 绍兴县| 尤溪县| 宁晋县| 井研县| 昭苏县| 滕州市| 仁寿县| 博野县| 宜城市| 渭源县| 农安县| 金溪县| 盐津县| 尼勒克县| 松江区| 蛟河市| 福安市| 邵东县| 日照市| 鄂托克前旗| 旺苍县| 鄢陵县| 泰兴市| 鄂温| 平果县| 抚州市| SHOW| 剑阁县| 白城市| 鹿泉市|