亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2023年12月06日 14:40:05   作者:無問287  
類的初始化過程是在類加載階段完成的,包括加載、驗證、準(zhǔn)備、解析和初始化等步驟,本文主要介紹了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 JPA使用配置過程詳解

    輕松搞定SpringBoot JPA使用配置過程詳解

    Spring Boot是由Pivotal團隊提供的全新框架,該框架使用了特定的方式來進行配置,它默認(rèn)配置了很多框架的使用方式,就像 Maven整合了所有的Jar包,Spring Boot 整合了所有的框架
    2021-06-06
  • spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推薦)

    spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息(推

    這篇文章主要介紹了spring boot里增加表單驗證hibernate-validator并在freemarker模板里顯示錯誤信息的相關(guān)資料,需要的朋友可以參考下
    2018-01-01
  • Java?面向?qū)ο笸ㄟ^new揭開對象實例化

    Java?面向?qū)ο笸ㄟ^new揭開對象實例化

    各位鐵汁們大家好呀,我們上次博客講了,通過?Student?student1?=?new?Student();就可以實例化一個對象,這個對象就有Student類中的所以成員變量??墒?對象student1?和?類Student到底是怎樣建立聯(lián)系的,在內(nèi)存中到底發(fā)生了什么
    2022-04-04
  • 實例分析java對象中淺克隆和深克隆

    實例分析java對象中淺克隆和深克隆

    在本篇文章中我們給大家分享了關(guān)于java對象中淺克隆和深克隆的相關(guān)知識點和相關(guān)代碼內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2018-10-10
  • Java 實現(xiàn)倒計時功能(由秒計算天、小時、分鐘、秒)

    Java 實現(xiàn)倒計時功能(由秒計算天、小時、分鐘、秒)

    最近做項目遇到這樣的需求,天、小時、分鐘、秒的數(shù)值都是隔開的,服務(wù)器端只返回一個時間戳長度,怎么實現(xiàn)這樣的功能呢?下面小編給大家?guī)砹薐ava 實現(xiàn)倒計時功能的方案,需要的朋友參考下吧
    2018-01-01
  • Java中easypoi導(dǎo)入excel文件列名相同的處理方案

    Java中easypoi導(dǎo)入excel文件列名相同的處理方案

    這篇文章主要介紹了Java中easypoi導(dǎo)入excel文件列名相同的處理方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Mybatis流式查詢之ResultHanlde問題

    Mybatis流式查詢之ResultHanlde問題

    這篇文章主要介紹了Mybatis流式查詢之ResultHanlde問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • springboot如何開啟一個監(jiān)聽線程執(zhí)行任務(wù)

    springboot如何開啟一個監(jiān)聽線程執(zhí)行任務(wù)

    這篇文章主要介紹了springboot如何開啟一個監(jiān)聽線程執(zhí)行任務(wù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java字符串與日期類型轉(zhuǎn)換的工具類

    java字符串與日期類型轉(zhuǎn)換的工具類

    這篇文章主要為大家詳細(xì)介紹了java字符串與日期類型轉(zhuǎn)換的工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • IntelliJ IDEA 2020下載與安裝教程圖文詳解

    IntelliJ IDEA 2020下載與安裝教程圖文詳解

    這篇文章主要介紹了IDEA 2020下載與安裝的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05

最新評論