乙個關於JAVA類載入機制的面試題目

2021-09-20 15:25:59 字數 633 閱讀 4639

class singleton 

public static singleton getinstance() }

public class test

}

錯誤答案

count1=1

count2=1

正確答案

count1=1

count2=0

根據本體來分析類載入的過程

1:singleton singleton = singleton.getinstance();呼叫了類的singleton呼叫了類的靜態方法,觸發類的初始化

2:類載入的時候在準備過程中為類的靜態變數分配記憶體並初始化預設值 singleton=null count1=0,count2=0

3:類初始化化,為類的靜態變數賦值和執行靜態**快。singleton賦值為new singleton()呼叫類的構造方法

4:呼叫類的構造方法後count=1;count2=1

5:繼續為count1與count2賦值,此時count1沒有賦值操作,所有count1為1,但是count2執行賦值操作就變為0

靜態變數的初始化是根據在類中定義的順序進行的。

java的類載入機制

class testclassacatch exception e class c urlcl.loadclass testclassa testclassa object testclassa c.newinstance object.method catch exception e e.prin...

java中的類載入機制

類載入器可以分為引導類載入器,擴充套件類載入器,系統類載入器 有些地方又可以這樣分 啟動類載入器,自定義載入器。定義了靜態成員變數,但是在準備階段,這裡只是預設給a 0 的預設操作,到了初始化階段才進行 static 塊和靜態成員變數的賦值操作,即初始化之後,a 8。static public st...

關於類的載入機制總結

關於類的載入機制 首先我們要知道類載入機制的原理是什麼?1.啟動jvm 2.將需要執行的class檔案載入到虛擬機器記憶體中 3.找到主類,開始執行主函式 然後又是如何將class檔案載入到jvm記憶體中的?載入步驟 1.先委託父類載入類,如果父類已經載入,就不需要再次載入,如果父類沒有載入,再由本...