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

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

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

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

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

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

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

例如:靜態(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.對(duì)于靜態(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.在繼承場(chǎng)景下,對(duì)于靜態(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類的初始化順序的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java類初始化順序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Mybatis-Plus-Join表連接插件集成過(guò)程

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

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

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

最新評(píng)論

湖南省| 昔阳县| 西安市| 米脂县| 怀来县| 马关县| 池州市| 灯塔市| 东源县| 旺苍县| 济宁市| 肇东市| 北海市| 永泰县| 容城县| 漠河县| 磴口县| 缙云县| 进贤县| 瑞昌市| 新建县| 曲阜市| 连江县| 巢湖市| 五常市| 中西区| 蛟河市| 阿图什市| 房山区| 迁西县| 类乌齐县| 台南县| 苗栗市| 观塘区| 金门县| 桦甸市| 榕江县| 太仆寺旗| 祁连县| 平塘县| 穆棱市|