您好,登錄后才能下訂單哦!
好程序員Java學習路線分享JVM類加載機制,JVM相關概念
jvm<br>
jvm(Java Virtual Machine)Java虛擬機,是用代碼虛擬出來的計算機,模擬執行計算機的各項功能,它有自己的硬件架構,如:處理器、堆棧、寄存器等,還有自己的一套指令系統,在不同的操作系統上都可以安裝JVM,從而實現Java程序在不同的操作系統上都能執行,JVM就是為實現Java的跨平臺特性。
JVM加載類的過程
我們執行Java程序開發出來后,需要先編譯再執行,JVM就負責加載類的過程。<br>
類加載的過程分為:
public static int count = 100;
如:上面的count變量在準備階段會賦值為0,在初始化時再賦值為100;
虛擬機啟動時,定義了main()方法的那個類先初始化
代碼案例
了解了類的加載機制,我們來看一道面試題:
public class MySingleton {
private static MySingleton singleton = new MySingleton();
public static int count1 = 0;
public static int count2;
private MySingleton(){
count1++;
count2++;
}
public static MySingleton getInstance(){
return singleton;
}
public static void main(String[] args) {
MySingleton singleton = MySingleton.getInstance();
System.out.println("count1-->"+MySingleton.count1);
System.out.println("count2-->"+MySingleton.count2);
}
}
上面的結果,大多數同學可能認為兩個靜態變量都是1,結果比較意外:
count1-->0
count2-->1
這是為什么呢?下面我們來分析下:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。