java對(duì)象初始化順序驗(yàn)證示例
public class Derive extends Base
{
private Member m1 = new Member("Member 1");
{
System.out.println("Initial Block()");
}
public Derive() {
System.out.println("Derive()");
}
private Member m2 = new Member("Member 2");
private int i = getInt();
private int getInt()
{
System.out.println("getInt()");
return 2;
}
public static void main(String[] args)
{
new Derive();
}
}
class Base
{
public Base()
{
System.out.println("Base()");
}
}
class Member
{
public Member(String m)
{
System.out.println("Member() "+m);
}
}
/*程序輸出:
Base()
Member() Member 1
Initial Block()
Member() Member 2
getInt()
Derive()
*/
得出結(jié)論如下:不考慮靜態(tài)成員的初始化,調(diào)用一個(gè)對(duì)象的構(gòu)造函數(shù)時(shí),程序先調(diào)用父類的構(gòu)造函數(shù)(可以通過super關(guān)鍵字指定父類的構(gòu)造函數(shù),否則默認(rèn)調(diào)用無參的構(gòu)造函數(shù),并且需要在子類的構(gòu)造函數(shù)的第一行調(diào)用),之后靜態(tài)成員變量的初始化函數(shù)和靜態(tài)初始化塊則按照在代碼當(dāng)中的順序執(zhí)行,成員變量如果沒有指定值的話則賦予默認(rèn)值,即基本數(shù)據(jù)類型為0或false等,對(duì)象則為null;最后調(diào)用自身構(gòu)造函數(shù)。
相關(guān)文章
Spring集成Druid連接池及監(jiān)控配置的全過程
java程序很大一部分要操作數(shù)據(jù)庫,為了提高性能操作數(shù)據(jù)庫的時(shí)候,有不得不使用數(shù)據(jù)庫連接池,下面這篇文章主要給大家介紹了關(guān)于Spring集成Druid連接池及監(jiān)控配置的相關(guān)資料,需要的朋友可以參考下2021-09-09使用Java 實(shí)現(xiàn)一個(gè)“你畫手機(jī)猜”的小游戲
這篇文章主要介紹了使用Java 實(shí)現(xiàn)一個(gè)“你畫手機(jī)猜”的小游戲,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Java編程實(shí)現(xiàn)游戲中的簡單碰撞檢測(cè)功能示例
這篇文章主要介紹了Java編程中的簡單碰撞檢測(cè)功能,涉及java針對(duì)坐標(biāo)點(diǎn)的相關(guān)數(shù)學(xué)運(yùn)算操作技巧,需要的朋友可以參考下2017-10-10Spring中的@Conditional注解實(shí)現(xiàn)分析
這篇文章主要介紹了Spring中的@Conditional注解實(shí)現(xiàn)分析, @Conditional是Spring 4出現(xiàn)的注解,但是真正露出價(jià)值的是Spring Boot的擴(kuò)展@ConditionalOnBean等,需要的朋友可以參考下2023-12-12基于Spring Boot不同的環(huán)境使用不同的配置方法
下面小編就為大家分享一篇基于Spring Boot不同的環(huán)境使用不同的配置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01如何將默認(rèn)的maven倉庫改為阿里的maven倉庫
這篇文章主要介紹了如何將默認(rèn)的maven倉庫改為阿里的maven倉庫,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Springboot?hibernate-validator?6.x快速校驗(yàn)示例代碼
這篇文章主要介紹了Springboot?hibernate-validator?6.x校驗(yàn),本文以6.2.1.Final版本為例解決了log4j版本的漏洞問題,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12