欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年03月11日 10:24:12   作者:lkc9  
這篇文章主要介紹了Java類加載連接和初始化原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

2、連接

  1)驗證

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

  2)準備

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

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

  3)解析

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

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

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

 ?。?)靜態(tài)變量的顯示初始化代碼,賦值代碼

  (2)靜態(tài)代碼塊

   ?。?) 和 (2) 的順序從上往下

  

  當一個類初始化時,發(fā)現(xiàn)他的父類沒有初始化,會先初始化父類。

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

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

- 以下操作會發(fā)生類初始化:

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

  2)new一個類的對象時

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

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

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

- 以下操起不會發(fā)生類的初始化:

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

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

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

  

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 精通Java接口的使用與原理

    精通Java接口的使用與原理

    接口,在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法
    2022-03-03
  • 詳解Java類庫的概念以及import的使用方法

    詳解Java類庫的概念以及import的使用方法

    這篇文章主要介紹了詳解Java類庫的概念以及import的使用方法,是Java入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • RestTemplate集成Ribbbon的示例代碼

    RestTemplate集成Ribbbon的示例代碼

    這篇文章主要介紹了RestTemplate集成Ribbbon的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 利用Maven入手Spring Boot第一個程序詳解

    利用Maven入手Spring Boot第一個程序詳解

    這篇文章主要給大家介紹了關(guān)于如何利用Maven入手Spring Boot第一個程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • MyBatis-Plus常見面試題和答案大全

    MyBatis-Plus常見面試題和答案大全

    Mybatis-Plus是一個基于Mybatis的增強工具,它簡化了Mybatis的開發(fā)流程,提供了許多實用的功能,如自動生成代碼、分頁查詢、條件構(gòu)造器、性能分析等,這篇文章主要給大家介紹了關(guān)于MyBatis-Plus常見面試題和答案的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 關(guān)于Java三大特性之多態(tài)的總結(jié)

    關(guān)于Java三大特性之多態(tài)的總結(jié)

    這篇文章主要介紹了關(guān)于Java三大特性之多態(tài)的總結(jié),內(nèi)容詳細,涉及多態(tài)的定義,存在條件,好處,分類及實現(xiàn)方式等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Maven項目引用第三方j(luò)ar包找不到類ClassNotFoundException

    Maven項目引用第三方j(luò)ar包找不到類ClassNotFoundException

    這篇文章主要為大家介紹了Maven項目引用第三方j(luò)ar包找不到類ClassNotFoundException解決及原因分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 使用maven對springboot項目進行瘦身分離jar的多種處理方案

    使用maven對springboot項目進行瘦身分離jar的多種處理方案

    springboot項目打包一般我們都使用它自帶的spring-boot-maven-plugin插件,這個插件默認情況下,會把所有的依賴包全部壓縮到一個jar里面,今天給大家分享幾種方案來如何減小我們的打包文件,需要的朋友可以參考下
    2024-02-02
  • SpringBoot多環(huán)境開發(fā)與日志小結(jié)

    SpringBoot多環(huán)境開發(fā)與日志小結(jié)

    這篇文章主要介紹了SpringBoot多環(huán)境開發(fā)與日志,下面給大家說一下如何基于多環(huán)境開發(fā)做配置獨立管理,務(wù)必掌握,需要的朋友可以參考下
    2022-08-08
  • Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限詳解

    Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限詳解

    這篇文章主要介紹了Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限詳解, 通過Mybatis攔截器我們可以攔截某些方法的調(diào)用,我們可以選擇在這些被攔截的方法執(zhí)行前后加上某些邏輯,需要的朋友可以參考下
    2023-11-11

最新評論