您好,登錄后才能下訂單哦!
本篇內容主要講解“Java類被加載過程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java類被加載過程”吧!
static修飾符表示靜態的,在類加載時Jvm會把它放到方法區,被本類以及本類的所有實例所共用。在編譯后所分配的內存會一直存在,直到程序退出內存才會釋放這個空間。如果一個被所有實例共用的方法被申明為static,那么就可以節省空間,不用每個實例初始化的時候都被分配到內存。
Java類被加載過程:
類裝載器把一個類裝入Java虛擬機中,要經過三個步驟來完成:
①. 加載(以二進制形式來生成Class對象)
②. 鏈接(又分為驗證、準備和解析)
校驗:檢查導入類或接口的二進制數據的正確性;
準備:給類的靜態變量分配并初始化存儲空間;
解析:將符號引用轉成直接引用;
③. 初始化(激活類的靜態變量和靜態代碼塊、初始化Java代碼)
靜態變量
靜態方法
靜態代碼塊
靜態代碼塊就是在類加載器加載對象時,要執行的一組語句。靜態塊只會在類加載到內存中的時候執行一次,位置可以隨便放,如果static代碼塊有多個,JVM將按照它們在類中出現的先后順序依次執行它們,每個代碼塊只會被執行一次。
static{ //在類被加載的時候用于初始化資源,僅能訪問靜態變量和靜態方法 System.out.println("StaticExample static block"); }
靜態類
只能在內部類中定義靜態類,靜態內部類與外層類綁定,即使沒有創建外層類的對象,它一樣存在。靜態類的方法可以是靜態的方法也可以是非靜態的方法,靜態的方法可以在外層通過靜態類調用,而非靜態的方法必須要創建類的對象之后才能調用。只能引用外部類的static成員變量(也就是類變量),當然前提是滿足修飾關鍵字(public等)的可見性要求。
如果一個內部類不是被定義成靜態內部類,那么在定義成員變量或者成員方法的時候,是不能夠被定義成靜態的。
public class OuterClass { public static class InnerClass{ InnerClass(){ System.out.println("靜態內部類"); } } }
到此,相信大家對“Java類被加載過程”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。