java 物件屬性初始化順序

2021-07-22 12:44:21 字數 698 閱讀 8302

a、類的初始化

順序如下:

為靜態屬性分配記憶體並賦值(後面大括號語句不執行,這裡是初始化,只是新增變數和值) 

或  執行靜態**塊(立刻執行大括號裡面的語句)

為什麼這樣說呢,因為誰在前先載入誰,包括靜態屬性之間,和靜態塊之間的順序,

但是注意,雖然順序都可以當第一,但是靜態塊、靜態屬性執行的東西完全不一樣,怎麼不一樣,已經寫上去了自己看

(筆者注:這個問題,在花了很多時間的推敲後,最終有了答案,前後花了不少的時間去執行**,修改各種情況,也有同學參與了進來,所以大家對我們付出的努力應該尊重啊)2、為

非靜態屬性

分配記憶體並賦值

3、構造方法(實際上這個先於非靜態屬性呼叫到,只是構造方法裡面的語句暫停執行,等到非靜態屬性載入完才執行)

4、執行非靜態**塊 或 靜態方法(都是呼叫了才載入)。

b、類的**(大括號內的語句)執行順序:   當你建立了物件的時候才會用到各個屬性和變數對不對,這裡就是這個順序

->1、

執行靜態**塊(大括號包含的語句立刻執行,絕對是第一位的執行,沒有能和它平級的)

->2、

靜態屬性 (第二位執行

)->3、

為非靜態屬性分配記憶體並賦值(大括號內語句第三位執行)

->4、建構函式

->

執行非靜態**塊 或 靜態方法

(都是呼叫了才載入)。

java物件的初始化順序

物件初始化流程 我們根據一段 來分析物件初始化流程 基類包含一靜態變數 包含一例項變數 包含乙個靜態初始化塊以及乙個構造子 class base public base 一級子類和基類包含的內容一樣 class superclass extends base static public static...

java初始化順序

1 父類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 2 子類靜態成員和靜態初始化塊 按在 中出現的順序依次執行 3 父類例項成員和例項初始化塊 按在 中出現的順序依次執行 4 父類構造方法 5 子類例項成員和例項初始化塊 按在 中出現的順序依次執行 6 子類構造方法 public abstr...

java初始化順序

例如以下 package chapter5 public class demo1one public void printinfo public static void main string args 程式一開始先執行 private static string password 0721 這行 ...