java初始化過程和代碼先後順序沒有關系,執行順序依次為:
靜态成員變量;
靜态域;
成員變量;
構造方法;
注:有基類,先執行基類,後執行子類。
package com.init.order;
public class Fruit {
public Fruit(){
System.out.println("Fruit init function");
}
public int apple_2 = intPrintln(2);
public static int apple_1 = intPrintln(1);
static{
System.out.println("static area");
static int intPrintln(int i){
System.out.println(i);
return 100;
public class Apple extends Fruit{
public Apple(){
System.out.println("apple init function");
static int apple = intPrintln(20);
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Apple();
執行結果:
1
static area
20
2
Fruit init function
apple init function