java 程序的初始化顺序是怎样的?
生活随笔
收集整理的這篇文章主要介紹了
java 程序的初始化顺序是怎样的?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【0】README
1)本文 轉(zhuǎn)自“ java 程序員面試筆試寶典”, 這個(gè)書(shū)有點(diǎn)意思;
【1】java程序初始化遵循三個(gè)原則(rule)
r1)靜態(tài)變量 優(yōu)先于 非靜態(tài)變量;
r2)父類優(yōu)先于子類進(jìn)行初始化;
r3)按照成員變量的定義順序進(jìn)行初始化;
【2】荔枝如下:
package com.mytest;public class MyTest1 {public static void main(String[] args) {new Child();} }class Father {private static String staticV = "父類靜態(tài)變量"; // 1 private String nonStaticV = "父類非靜態(tài)變量"; // 5static{ // 2System.out.println(staticV);System.out.println("父類靜態(tài)代碼塊");}{ // 6System.out.println(nonStaticV);System.out.println("父類非靜態(tài)代碼塊");}public Father() { // 7System.out.println("父類構(gòu)造函數(shù)");} }class Child extends Father{private static String staticV = "子類靜態(tài)變量"; // 3private String nonStaticV = "子類非靜態(tài)變量"; // 8static{ // 4System.out.println(staticV);System.out.println("子類靜態(tài)代碼塊");}{ // 9System.out.println(nonStaticV);System.out.println("子類非靜態(tài)代碼塊");}public Child() { // 10System.out.println("子類構(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ù)所以,初始化的順序?yàn)?#xff1a;
總結(jié)
以上是生活随笔為你收集整理的java 程序的初始化顺序是怎样的?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (ddos系统源码)
- 下一篇: 我的控制反转,依赖注入和面向切面编程的理