重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
生命周期:類的加載->連接->初始化->使用->卸載。
(推薦教程:java入門教程)
詳細介紹:
1、類的加載
查找并加載類的二進制數(shù)據(jù)(指class文件),通俗的將就是硬盤上的class文件加載到jvm內(nèi)存中
2、連接: 確定類與類之間的關系;比如person.setAddress(address) 人對象中嵌套一個地址對象
驗證:正確性校驗
準備:static靜態(tài)變量分配內(nèi)存,并賦初始化默認值。
比如static int num=10;
在準備階段,會吧num=0,之后再將0修改為10。準備階段只會把num賦值為0,。jvm只有類,沒有對象。
初始化順序:static->非static->構造方法
public class Student{ static int age;//準備階段,將age=0
String name;
}
加載完類,程序只有學生類,沒有學生對象,還沒有 Student s=new Student()這句話
解析:把類中符號引用,轉為直接引用
前期階段,還不知道類的具體內(nèi)存地址,只能使用com.pojo.Student來代替student類。
com.pojo.Student就成為符號引用;
在解析階段,jvm就可以將com.pojo.Student映射程實際的內(nèi)存地址,之后就用內(nèi)存地址來代替 Student,這種使用內(nèi)存地址來使用類的方式就成為直接引用
(視頻教程推薦:java視頻教程)
3、初始化:
比如static int num=10;
在準備階段,會吧num=0,之后(初始化階段之后)再將0修改為10。
4、使用: 對象的初始化,對象的垃圾回收,對象的銷毀
5、卸載:
jvm結束生命周期的時機:
正常結束
異常結束、錯誤
System.exit()
操作系統(tǒng)異常