最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java類的初始化順序的實現(xiàn)

 更新時間:2023年12月06日 14:40:05   作者:無問287  
類的初始化過程是在類加載階段完成的,包括加載、驗證、準備、解析和初始化等步驟,本文主要介紹了Java類的初始化順序的實現(xiàn),感興趣的可以了解一下

類初始化順序遵循以下三個原則(優(yōu)先級依次遞減)

1、靜態(tài)對象(變量)優(yōu)先于非靜態(tài)對象(變量)初始化,其中靜態(tài)對象(變量)只初始化一次,而非靜態(tài)對象(變量)可能會初始化多次;

2、父類優(yōu)先于子類初始化;

3、成員變量按照定義先后順序進行初始化;

例如:靜態(tài)變量、非靜態(tài)變量、靜態(tài)代碼塊、非靜態(tài)代碼塊、構(gòu)造函數(shù)、父類、子類等。

他們的初始化順序是:父類靜態(tài)變量 > 父類靜態(tài)代碼塊 > 子類靜態(tài)變量 > 子類靜態(tài)代碼塊 > 父類非靜態(tài)變量 > 父類非靜態(tài)代碼塊 > 父類構(gòu)造函數(shù) > 子類非靜態(tài)變量 > 子類非靜態(tài)代碼塊 > 子類構(gòu)造函數(shù)。 

1.對于靜態(tài)變量、靜態(tài)初始化塊、變量、初始化塊、構(gòu)造器,它們的初始化順序是?

public class Test1 {
	// 靜態(tài)變量
	public static String staticField = "靜態(tài)變量";
	// 變量
	public String field = "變量";
	// 靜態(tài)初始化塊
	static {
	  System.out.println(staticField);
	  System.out.println("靜態(tài)初始化塊");
	}
	// 初始化塊
	{
	  System.out.println(field);
	  System.out.println("初始化塊");
	}
	// 構(gòu)造器
	public Test1() {
	 System.out.println("構(gòu)造器");
	}
	public static void main(String[] args) {
	 new Test1();
	}
}

執(zhí)行結(jié)果如下:

2.在繼承場景下,對于靜態(tài)變量、靜態(tài)初始化塊、變量、初始化塊、構(gòu)造器,它們的初始化順是?

class Parent { 
	 // 靜態(tài)變量
	 public static String p_StaticField = "父類--靜態(tài)變量";
	 // 變量
	 public String p_Field = "父類--變量";
	 // 靜態(tài)初始化塊
	 static {
	   System.out.println(p_StaticField);
	   System.out.println("父類--靜態(tài)初始化塊");
	 }
	 // 初始化塊
	 {
	   System.out.println(p_Field);
	   System.out.println("父類--初始化塊");
	 }
	 // 構(gòu)造器
	 public Parent() {
	   System.out.println("父類--構(gòu)造器");
	 }
}
public class Test2 extends Parent {
	 // 靜態(tài)變量
	 public static String s_StaticField = "子類--靜態(tài)變量";
	 // 變量
	 public String s_Field = "子類--變量";
	 // 靜態(tài)初始化塊
	 static {
	   System.out.println(s_StaticField);
	   System.out.println("子類--靜態(tài)初始化塊");
	 }
	 // 初始化塊
	 {
	   System.out.println(s_Field);
	   System.out.println("子類--初始化塊");
	 }
	 // 構(gòu)造器
	 public Test2() {
	   System.out.println("子類--構(gòu)造器");
	 }
	 // 程序入口
	 public static void main(String[] args) {
	   new Test2();
	 }
}

 執(zhí)行結(jié)果如下:

3.靜態(tài)變量和靜態(tài)初始化塊之間、變量和初始化塊之間的先后順序又是怎樣呢? 

public class Test3 {
// 靜態(tài)變量
public static TestA a = new TestA();
// 靜態(tài)初始化塊
static {
   System.out.println("靜態(tài)初始化塊");
}
// 靜態(tài)變量
public static TestB b = new TestB();
	public static void main(String[] args) {
		new Test3();
	}
}
class TestA {
	public TestA() {
		System.out.println("Test--A");
	}
}
class TestB {
	public TestB() {
		System.out.println("Test--B");
	}
}

執(zhí)行結(jié)果如下:

到此這篇關(guān)于Java類的初始化順序的實現(xiàn)的文章就介紹到這了,更多相關(guān)Java類初始化順序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot幾種任務(wù)的整合方法

    Springboot幾種任務(wù)的整合方法

    這篇文章主要介紹了Springboot幾種任務(wù)的整合方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java多線程之線程的創(chuàng)建

    Java多線程之線程的創(chuàng)建

    這篇文章主要介紹了Java多線程之線程的創(chuàng)建,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 如何用Java實現(xiàn).env文件讀取敏感數(shù)據(jù)

    如何用Java實現(xiàn).env文件讀取敏感數(shù)據(jù)

    這篇文章主要介紹了如何用Java實現(xiàn).env文件讀取敏感數(shù)據(jù),并提供了一個自動配置類EnvAutoConfiguration,common-env-starter-demo模塊展示了如何配置和啟動一個簡單的Spring Boot應用程序,需要的朋友可以參考下
    2025-02-02
  • Spring-AOP自動創(chuàng)建代理之BeanNameAutoProxyCreator實例

    Spring-AOP自動創(chuàng)建代理之BeanNameAutoProxyCreator實例

    這篇文章主要介紹了Spring-AOP自動創(chuàng)建代理之BeanNameAutoProxyCreator實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot整合ip2region實現(xiàn)用戶ip歸屬地獲取

    Springboot整合ip2region實現(xiàn)用戶ip歸屬地獲取

    ip2region是一個離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,提供了眾多主流編程語言的 xdb 數(shù)據(jù)生成和查詢客戶端實現(xiàn),下面我們來看看如何使用ip2region實現(xiàn)用戶ip歸屬地獲取吧
    2025-05-05
  • MyBatis中調(diào)用存儲過程和函數(shù)的實現(xiàn)示例

    MyBatis中調(diào)用存儲過程和函數(shù)的實現(xiàn)示例

    在MyBatis中調(diào)用存儲過程和函數(shù)是一個相對高級的特性,本文主要介紹了MyBatis中調(diào)用存儲過程和函數(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • SVN 安裝教程之服務(wù)器和客戶端

    SVN 安裝教程之服務(wù)器和客戶端

    這篇文章主要介紹了SVN 安裝教程之服務(wù)器和客戶端的相關(guān)資料,這里對安裝步驟進行了詳細介紹,需要的朋友可以參考下
    2016-11-11
  • Java使用設(shè)計模式中的代理模式構(gòu)建項目的實例展示

    Java使用設(shè)計模式中的代理模式構(gòu)建項目的實例展示

    這篇文章主要介紹了Java使用設(shè)計模式中的代理模式構(gòu)建項目的實例展示,代理模式中的代理對象可以在客戶端和目標對象之間起到中介的作用,需要的朋友可以參考下
    2016-05-05
  • Mybatis-Plus-Join表連接插件集成過程

    Mybatis-Plus-Join表連接插件集成過程

    Mybatis-Plus-Join是Mybatis-Plus的擴展插件,支持左、右、內(nèi)連接查詢,保持原有開發(fā)風格,通過JoinLambdaWrapper配置連接關(guān)系與查詢條件,簡化多表關(guān)聯(lián)操作,提升復雜SQL編寫效率
    2025-09-09
  • java的arraylist排序示例(arraylist用法)

    java的arraylist排序示例(arraylist用法)

    這篇文章主要介紹了java的arraylist排序示例,學習一下arraylist的用法,需要的朋友可以參考下
    2014-03-03

最新評論

邢台市| 汉沽区| 双流县| 西昌市| 阿克陶县| 东山县| 新晃| 铜川市| 聂拉木县| 兴城市| 三台县| 丹东市| 三门峡市| 泽普县| 崇左市| 革吉县| 繁峙县| 汕尾市| 夏河县| 吉首市| 安宁市| 昆山市| 井冈山市| 成武县| 米林县| 珲春市| 菏泽市| 舞阳县| 得荣县| 都匀市| 安多县| 霍州市| 阿拉善右旗| 怀宁县| 贺州市| 宁乡县| 栾川县| 新绛县| 密山市| 普陀区| 廊坊市|