Java類載入機制,java載入機制

來源:互聯網
上載者:User

Java類載入機制,java載入機制
java類載入機制類的生命週期

類的生命週期包括7個階段:載入 、驗證、準備、解析、初始化、使用和卸載

類的初始化情境類不初始化的情境情境一 :

通過子類引用父類的靜態變數時,不會導致子類的初始化過程

代碼如下:

public class SSClass{    static    {        System.out.println("SSClass");    }}    public class SuperClass extends SSClass{    static    {        System.out.println("SuperClass init!");    }     public static int value = 123;     public SuperClass()    {        System.out.println("init SuperClass");    }}public class SubClass extends SuperClass{    static    {        System.out.println("SubClass init");    }     static int a;     public SubClass()    {        System.out.println("init SubClass");    }}public class NotInitialization{    public static void main(String[] args)    {        System.out.println(SubClass.value);    }}

輸出的結果:
SSClass
SuperClass init!
123

情境二:

通過數組來引用類,不會觸發該類初始化 例如:SubClass[] array = new SubClass[10] 原因在於,這時候的位元組碼指令是newarray

情境三:

當類變數被final關鍵字修飾的時候,引用ConstanValue不會觸發該類初始化
原因:這種常量在類的準備階段已經存放在常量池裡了,調用和該類沒有太大關係

應用測試題

package com.zzjmay;public class TestJVM {        public static void main(String[] args)        {            staticFunction();        }        static TestJVM st = new TestJVM();        static        {            System.out.println("1");        }        {            System.out.println("2");        }        TestJVM()        {            System.out.println("3");            System.out.println("a="+a+",b="+b);        }        public static void staticFunction(){            System.out.println("4");        }        int a=110;        static int b =112;}

輸出的結果是
2
3
a=110 ,b=0
1
4

注意:
對象初始化的步驟是先初始化成員變數,再初始化構造器
類初始化 按照代碼順序執行,如果存在嵌套對象初始化,先執行對象初始化

歡迎加入學習交流群569772982,大家一起學習交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.