詳情描述
Java這門語言想必大家都不陌生,沒學(xué)過也聽過,沒聽過也用過。隨著接觸的增多,很多同學(xué)就起了學(xué)Java的的心思。但是Java這門語言吧,雖然發(fā)展多年,風(fēng)格穩(wěn)定,但想要學(xué)好,還真的有足夠優(yōu)質(zhì)的學(xué)習(xí)資料不可。這個時候,千鋒老師就要站出來給大家分享一波Java學(xué)習(xí)資料了。
千鋒手里有整套完備而全新的Java學(xué)習(xí)資料,這次我們主要講一講類加載機(jī)制。
類加載過程:加載、驗證、準(zhǔn)備、解析、初始化
加載
在加載階段,虛擬機(jī)主要完成三件事:
1.通 過一個類的全限定名來獲取定義此類的二進(jìn)制字節(jié)流。
2.將這個字節(jié)流所代表的靜態(tài)存儲結(jié)構(gòu)轉(zhuǎn)化為方法區(qū)域的運(yùn)行時數(shù)據(jù)結(jié)構(gòu)。
3.在Java堆中生成一個代表這個類的java.lang.Class對象,作為方法區(qū)域數(shù)據(jù)的訪問入口
驗證
驗證階段作用是保 證Class文件的字節(jié)流包含的信息符合JVM規(guī)范,不會給JVM造成危害。如果驗證失敗,就會拋出一個java.lang.VerifyError異?;蚱渥宇惍惓!r炞C過程分為四個階段
1.文件格式驗證:驗證字節(jié)流文件是否符合Class文件格式的規(guī)范,并且能被當(dāng)前虛擬機(jī)正確的處理。
2.元數(shù)據(jù)驗證:是對字節(jié)碼描述的信息進(jìn)行語義分析,以保 證其描述的信息符合Java語言的規(guī)范。
3.字節(jié)碼驗證:主要是進(jìn)行數(shù)據(jù)流和控制流的分析,保 證被校驗類的方法在運(yùn)行時不會危害虛擬機(jī)。
4.符號引用驗證:符號引用驗證發(fā)生在虛擬機(jī)將符號引用轉(zhuǎn)化為直接引用的時候,這個轉(zhuǎn)化動作將在解析階段中發(fā)生。
準(zhǔn)備
準(zhǔn)備階段為變量分配內(nèi)存并設(shè)置類變量的初始化。在這個階段分配的僅為類的變量(static修飾的變量),而不包括類的實例變量。對已非final的變量,JVM會將其設(shè)置成“零值”,而不是其賦值語句的值:
pirvate static int size = 12;
那么在這個階段,size的值為0,而不是12。
final修飾的類變量將會賦值成真實的值。
更多Java學(xué)習(xí)資料,盡在:
千鋒java全套基礎(chǔ)視頻教程
千鋒javaEE教程精講:Html和CSS:
千鋒JAVA第二階段Web實戰(zhàn)講解教程
千鋒教育:
千鋒武漢校區(qū):
武漢校區(qū)地址:武漢市光谷大道61號智慧園21號樓2層
面授課程:全棧WEB+培訓(xùn)、全鏈路設(shè)計培訓(xùn)、PHP全棧+服務(wù)器集群培訓(xùn)、JavaEE+分布式開發(fā)培訓(xùn)、大數(shù)據(jù)+人工智能培訓(xùn)、 Unity游戲開發(fā)培訓(xùn)、Python培訓(xùn)、云計算+Python運(yùn)維培訓(xùn)、全棧軟件測試培訓(xùn)、Android培訓(xùn)、iOS培訓(xùn)