日韩在线首页I俄罗斯pornI男女猛烈激情XX00高潮动态I超碰免费97I乱人伦99久久I欧美日韩成人一区I最新日韩视频在线观看I粉嫩AV四季AV绯色AVI五月导航

×
新網 > 虛擬主機 > 正文

深入java虛擬機

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-05-14 10:24:35

類加載器,顧名思義,類加載器(class loader)用來加載 Java 類到 Java 虛擬機中。一般來說,Java 虛擬機使用 Java 類的方式如下:Java 源程序(.java 文件)在經過 Java 編譯器編譯之后就被轉換成 Java 字節代碼(.class 文件)。類加載器負責讀取 Java 字節代碼,并轉換成 java.lang.Class類的一個實例。

        類加載器,顧名思義,類加載器(class loader)用來加載 Java 類到 Java 虛擬機中。一般來說,Java 虛擬機使用 Java 類的方式如下:Java 源程序(.java 文件)在經過 Java 編譯器編譯之后就被轉換成 Java 字節代碼(.class 文件)。類加載器負責讀取 Java 字節代碼,并轉換成 java.lang.Class類的一個實例。

t01804c593338b31ca5.jpg

<div>         每個這樣的實例用來表示一個 Java 類。通過此實例的 newInstance()方法就可以創建出該類的一個對象。實際的情況可能更加復雜,比如 Java 字節代碼可能是通過工具動態生成的,也可能是通過網絡下載的。基本上所有的類加載器都是 java.lang.ClassLoader類的一個實例。其實我們研究類加載器主要研究的就是類的生命周期。
  首先來了解一下jvm(java虛擬機)中的幾個比較重要的內存區域,這幾個區域在java類的生命周期中扮演著比較重要的角色:
  方法區:在java的虛擬機中有一塊專門用來存放已經加載的類信息、常量、靜態變量以及方法代碼的內存區域,叫做方法區。
  常量池:常量池是方法區的一部分,主要用來存放常量和類中的符號引用等信息。
  堆區:用于存放類的對象實例。
  棧區:也叫java虛擬機棧,是由一個一個的棧幀組成的后進先出的棧式結構,棧楨中存放方法運行時產生的局部變量、方法出口等信息。當調用一個方法時,虛擬機棧中就會創建一個棧幀存放這些數據,當方法調用完成時,棧幀消失,如果方法中調用了其他方法,則繼續在棧頂創建新的棧楨。
  類的生命周期
  當我們編寫一個java的源文件后,經過編譯會生成一個后綴名為class的文件,這種文件叫做字節碼文件,只有這種字節碼文件才能夠在java虛擬機中運行,java類的生命周期就是指一個class文件從加載到卸載的全過程。一個java類的完整的生命周期會經歷加載、連接、初始化、使用、和卸載五個階段,當然也有在加載或者連接之后沒有被初始化就直接被使用的情況,這里我們主要來研究類加載器所執行的部分,也就是加載,鏈接和初始化。
  下面我先簡單看一下類加載器所執行的三部分的簡單介紹
  1、加載:查找并加載類的二進制數據
  2、連接
  –驗證:確保被加載的類的正確性
  –準備:為類的靜態變量分配內存,并將其初始化為默認值
  –解析:把類中的符號引用轉換為直接引用
  3、初始化:為類的靜態變量賦予正確的初始值
  從上邊我們可以看出類的靜態變量賦了兩回值。這是為什么呢?原因是,在連接過程中時為靜態變量賦值為默認值,也就是說,只要是你定義了靜態變量,不管你開始給沒給它設置,我系統都為他初始化一個默認值。到了初始化過程,系統就檢查是否用戶定義靜態變量時有沒有給設置初始化值,如果有就把靜態變量設置為用戶自己設置的初始化值,如果沒有還是讓靜態變量為初始化值
  類的加載、連接和初始化
  類的加載
  類的加載指的是將類的.class文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法區內,然后在堆區創建一個java.lang.Class對象,用來封裝類在方法區內的數據結構 。這里的class對象其實就像一面鏡子一樣,外面是類的源程序,里面是class對象,它實時的反應了類的數據結構和信息。
  加載.class文件的方式
  1、從本地系統中直接加載
  2、通過網絡下載.class文件
  3、從zip,jar等歸檔文件中加載.class文件
  4、從專有數據庫中提取.class文件
  5、將Java源文件動態編譯為.class文件
  類的加載過程
  結論:
  1、類的加載的最終產品是位于堆區中的Class對象
  2、Class對象封裝了類在方法區內的數據結構,并且向Java程序員提供了訪問方法區內的數據結構的接口
  Java虛擬機給我們提供了兩種類加載器:
  1、Java虛擬機自帶的加載器
  1)根類加載器(使用C++編寫,程序員無法在Java代碼中獲得該類)
  2)擴展加載器,使用Java代碼實現
  3)系統加載器(應用加載器),使用Java代碼實現
  2、用戶自定義的類加載器
  java.lang.ClassLoader的子類
  用戶可以定制類的加載方式

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 7878成人国产在线观看 | 欧美日韩在线观看一区 | 欧洲高清转码区一二区 | 好大好硬好爽免费视频 | 五月天久久久久 | 九九影院理论片私人影院 | 日韩久久久久久久 | 亚洲中文字幕日产无码成人片 | 国产亚洲精品第一综合不卡 | 国产美女精品 | 日韩一区二区三区在线播放 | 天堂视频免费在线观看 | 国产成人精品必看 | 少妇三级全黄 | 97在线国产 | 少妇太爽了在线观看 | 国产无遮挡免费视频 | 91桃色成人wangxhab | 午夜激情影院在线观看 | 国产精品呻吟久久人妻无吗 | 国产精品5区 | 欧美三级午夜理伦三级 | 12萝自慰喷水亚洲网站 | 不卡av影片 | 亚洲精品一区二区三区在线观看 | 中文成人久久久久影院免费观看 | 国产精品视频久久久 | 亚洲 欧美变态 另类 综合 | 国产揄拍国内精品对白 | 国产第五页 | 人人搞人人干 | ⅹ一art唯美在线观看 | 日韩精品国产精品 | 午夜a视频 | 日韩在线激情视频 | 日日天干夜夜狠狠爱 | 他掀开裙子把舌头伸进去添视频 | 日本久久久久久久久 | 偷自拍亚洲综合在线 | 亚洲精品国产精品乱码不卡 | 中文字幕在线视频一区 | 久久91精品国产 | 男人天堂视频网站 | 国产成人亚洲精品无码不卡 | 黑人巨茎大战欧美白妇免费 | 精品国产av一二三四区 | 日韩大片高清播放器 | 精品久久久久久中文字幕大豆网 | 国产00高中生在线无套进入 | 欧美日韩精品二区 | 国产偷国产偷亚洲高清人白洁 | 大肉大捧一进一出好爽视频mba | 麻豆剧场 | ts人妖另类精品视频系列 | 五月婷婷,六月丁香 | 成人午夜福利免费无码视频 | 久久影视网 | av无码国产精品麻豆 | 日韩在线视频免费看 | 人人妻人人澡人人爽人人精品97 | 天天干夜夜曰 | 久久欧| 鲁一鲁一鲁一鲁一澡 | 99久久综合狠狠综合久久aⅴ | jizz欧美大全 | 亚洲精品国产精品国 | 亚洲日本在线在线看片4k超清 | 在线成人国产 | 狼群精品一卡二卡3卡四卡网站 | 欧美成年网站色a | 欧美a在线视频 | 日韩欧美一区二区三区免费观看 | 亚洲男人天堂2020 | 97国产视频 | 日本无卡码高清免费v | 成人一区二区在线 | 妞干网欧美 | 亚洲欧洲日产国码aⅴ | 大陆少妇xxxx做受高清 | 咪咪成人网 | 么公的好大好硬好深好爽视频 | 免费又黄又爽又色的视频 | 狠狠噜天天噜日日噜无码 | 风韵多水的老熟妇 | 日本老少配xxx | 蜜臀av网站在线 | 黑人做爰xxxⅹ性欧美有限公司 | 欧美激情亚洲综合 | 国产日韩在线亚洲色视频 | 亚洲欧洲日产国码av老年人 | 久久精品a亚洲国产v高清不卡 | 日韩一卡2卡3卡4卡2021免费观看国色天香 | 国产主播福利 | 三级网站视频在在线播放 | 精品性影院一区二区三区内射 | 国产成人一区二区啪在线观看 | 亚洲精品中文字幕乱码三区 | www国产亚洲精品久久 | 国产成人精品成人a在线观看 |