zoukankan      html  css  js  c++  java
  • 类加载顺序练习

    package com.czb;
    
    public class StaticTest {
    	public static int k = 0;
    	public static StaticTest t1 = new StaticTest("t1");
    	public static StaticTest t2 = new StaticTest("t2");
    	public static int i = print("i");
    	public static int n = 99;
    	public int j = print("j");
    	
    	{
    		print("构造块");
    	}
    	static
    	{
    		print("静态块");
    	}
    	
    	public StaticTest(String str) {
    		System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
    		++n;
    		++i;
    	}
    	
    	public static int print(String str) {
    		System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
    		++i;
    		return ++n;
    	}
    	public static void main(String[] args) {
    	
    		StaticTest t = new StaticTest("init");
    	}
    
    }
    

      

    1:j i=0 n=0
    2:构造块 i=1 n=1
    3:t1 i=2 n=2
    4:j i=3 n=3
    5:构造块 i=4 n=4
    6:t2 i=5 n=5
    7:i i=6 n=6
    8:静态块 i=7 n=99
    9:j i=8 n=100
    10:构造块 i=9 n=101
    11:init i=10 n=102

    首先加载的顺序为:
    先父类的static成员变量-》子类的static成员变量-》父类的成员变量-》父类构造-》子类成员变量-》子类构造

  • 相关阅读:
    Thinkphp3.2 PHPMailer 发送邮件
    13 代理模式
    12 状态模式
    11 组合模式
    10 迭代器模式
    9 模板方法模式
    8 外观模式
    MySQL Network--Localhost与127.0.0.1的差异
    MySQL Memory--内存分配相关参数
    mysqldump命令之single-transaction
  • 原文地址:https://www.cnblogs.com/chenzhibo/p/5195110.html
Copyright © 2011-2022 走看看