成人午夜一区二区_操碰在线视频_国产精品麻豆一区二区三区_中文黄色一级片_欧美日本中文字幕_高清视频91

當前位置: 首頁 / 技術干貨 / 正文
好程序員Java培訓分享Java類加載的過程概述

2020-10-12

Java培訓

  好程序員Java培訓分享Java類加載的過程概述:一. 類的加載概述

  當程序要使用某個類時,如果該類還未被加載到內存中,則系統(tǒng)會通過加載、連接、初始化三步來實現(xiàn)對這個類進行初始化。

  1. 加載:是將class文件讀入內存,并為之創(chuàng)建一個Class對象。任何類被使用時系統(tǒng)都會建立一個Class對象。

  2. 連接:

  (1)驗證是否有正確的內部結構,并和其他類協(xié)調一致。

  (2)準備負責為類的靜態(tài)成員分配內存,并設置默認初始化值。

  (3)解析將類的二進制數(shù)據(jù)中的符號引用替換為直接。

  3. 初始化:就是我們以前講過的初始化步驟。

pic-01

  二. 類加載時機

  當Java程序首次通過下面6種方式使用某個類或接口時,系統(tǒng)會初始化該類或接口。

  1. 創(chuàng)建類的實例。

  2. 訪問類的靜態(tài)變量,或者為靜態(tài)變量賦值。

  3. 調用類的靜態(tài)方法。

  4. 初始化某個類的子類。

  5. 直接使用Java.exe命令來運行某個主類。

  6. 使用反射方式來強制創(chuàng)建某個類或接口對應的Java.lang.Class對象。

  三. 類加載器的概述和分類

  1. 類加載器負責將.class文件加載到內存中,并為之生成對應的Class項,在Java中,類裝載器把一個類裝入JVM中,要經過以下步驟:

  (1)裝載:查找和導入Class文件;

  (2)鏈接:把類的二進制數(shù)據(jù)合并到JRE;

  校驗:檢查載入Class文件數(shù)據(jù)的正確性;

  準備:給類的靜態(tài)變量分配存儲空間;

  解析:將符號引用轉成直接引用;

  (3)初始化:對類的靜態(tài)變量,靜態(tài)代碼塊執(zhí)行初始化操作

  (4)JVM啟動時,會形成由三個加載器組成的初始類加載器層次結構:

  Bootstrap ClassLoader 根類加載器

  Extension ClassLoader 擴展類加載器

  System ClassLoader 系統(tǒng)類加載器

  2. 類加載器的作用

  Bootrap ClassLoader被稱為引導(也稱為原始或跟)類加載器,它負責加載Java的核心類。跟類加載器不是Java.lang.ClassLoader的子類,而是JVM自身實現(xiàn)的。在JDKJRElib目錄下rt.jar文件中。

  Extension ClassLoader負責加載JRE拓展目錄中的JAR包的類,它的父類加載器是跟類加載器。在JDKJRElib目錄下ext目錄。

  System ClassLoader負責在JVM啟動時加載來自Java命令的-classpath選項、Java.class,path系統(tǒng)屬性,或CLASSPATH指定的jar包和類歷經。系統(tǒng)可通過ClassLoader的靜態(tài)方法或區(qū)該系統(tǒng)類加載器。如果沒有特別指定,則用戶自定義的類加載器都已類加載器作為父加載器。

  四. 反射概述

JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法,同時對于任意一個對象,都能夠調用它的任意一個方法和屬性,這種動態(tài)獲取的信息以及動態(tài)調用對象方法的功能稱為Java語言的反射機制。

1.要想解剖一個類,必須先要獲取到該類的字節(jié)碼文件對象,而解剖使用的就是Class類中的方法,所以先要獲取到每一個字節(jié)碼文件對應的Class類型的對象。

2. 每個類被加載后,系統(tǒng)會為該類生成一個對應的Class對象,通過該Class對象可以訪問到JVM中的這個類。

  獲得Class對象通常有三種方式:

  (1)使用Class類的forName(String clazz)靜態(tài)方法。

  (2)調用某個類的class屬性來獲取該類的的Class對象。

  (3)調用某個對象的getClass()方法,該方法是Object類的一個方法。

好程序員公眾號

  • · 剖析行業(yè)發(fā)展趨勢
  • · 匯聚企業(yè)項目源碼

好程序員開班動態(tài)

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數(shù)據(jù)+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發(fā) <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數(shù)據(jù)分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發(fā) <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號

主站蜘蛛池模板: 日韩在线播放视频 | 99精品免费久久久久久久久日本 | 欧美国产精品一区二区三区 | 日韩欧美高清一区二区 | 亚洲我射av| 在线视频久久 | 亚洲高清免费 | 久久久久成人免费 | 天天摸夜夜操 | 国产一区二区三区精品在线观看 | 中文字幕日韩av | 国产成人精品999在线观看 | 国产黄色片在线观看 | 爱爱免费网址 | 91精品国产综合久久蜜臀 | 水蜜桃一区二区三区 | 久久99精品久久久 | 91麻豆精品91久久久久久清纯 | 99re在线视频观看 | 亚洲国产精品久久久久秋霞不卡 | 激情国产视频 | 成人永久aaa | 欧美在线视频免费播放 | 日韩精彩视频 | 国产欧美精品一区二区三区四区 | 精品视频久久久久久 | 久久精品视频播放 | 成人国产综合 | 国产一区二区成人在线 | 久久亚洲成人 | 99久久久无码国产精品 | 精品国产乱码久久久久久丨区2区 | 青草青草久热精品 | 一区二区国产精品 | 亚洲久久色 | 久久九九久精品国产 | 九九热久久免费视频 | 久久99久久99 | 亚洲成人精品在线观看 | 欧美一区二区在线播放 | 一级毛片视频在线 |