91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Java類加載連接和初始化原理解析

發布時間:2020-09-30 22:18:57 來源:腳本之家 閱讀:145 作者:lkc9 欄目:編程語言

1、當程序使用某個類時,JVM將會完成以下這三個步驟

Java類加載連接和初始化原理解析

2、連接

  1)驗證

    驗證是否是合法的字節碼文件。驗證JDK版本是否正確等。

  2)準備

    給成員變量(類變量/靜態變量)賦默認值

    把常量(final)等值在方法區的常量池中給準備好。

  3)解析

    虛擬機常量池內的符號引用(常量名)替換為引用(地址)的過程

3、初始化  <clinit> 類初始化

  <clinit> 類初始化由兩部分組成:

  (1)靜態變量的顯示初始化代碼,賦值代碼

  (2)靜態代碼塊

    (1) 和 (2) 的順序從上往下

  Java類加載連接和初始化原理解析

  當一個類初始化時,發現他的父類沒有初始化,會先初始化父類。

  每一個類只會初始化一次,并且初始化的過程時線程安全的。

哪些操作會導致類的初始化?這句話的意思是:類的加載不一定就會發生類初始化。

- 以下操作會發生類初始化:

  1)main方法所在的類加載時

  2)new一個類的對象時

  3)調用該類的靜態變量(final的常量除外) 和 靜態方法時

  4)使用 java.lang.reflect 包的方法對類進行反射調用時

  5)當初始化一個類,如果其父類沒有被初始化,則先會初始化他的父類

- 以下操起不會發生類的初始化:

  1)引用靜態常量不會觸發此類的初始化(常量在連接階段就存入了方法區的常量池中)

  2)當訪問一個靜態域時,只有真正聲明這個域的類才會被初始化

    當通過子類引用父類的靜態變量,不會導致子類初始化

  Java類加載連接和初始化原理解析

  3)通過數組定義類引用,不會觸發此類的初始化

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

积石山| 高青县| 海口市| 阿坝| 赣榆县| 布拖县| 黔东| 临颍县| 岑巩县| 湖州市| 临安市| 若尔盖县| 长乐市| 蒲江县| 阿克陶县| 手游| 怀集县| 河源市| 泾源县| 交城县| 普陀区| 阳谷县| 溧水县| 福海县| 富民县| 志丹县| 广水市| 政和县| 三门县| 盐城市| 乾安县| 江城| 阿鲁科尔沁旗| 新建县| 虞城县| 台州市| 榆中县| 澄江县| 浮梁县| 平塘县| 哈尔滨市|