欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java类的加载过程

程序员文章站 2022-07-11 23:50:03
...

java类的加载过程

package com.study;
public class ClassOrder {

    public static void main(String args[]) {
        test t = new test("init");
    }
}
 class test {
     /**
      *  类的加载过程 :静态代码块、静态属性 是根据程序先后顺序加载,然后是加载静态方法》非静态成员中非静态代码块与非静态属性也是按照顺序加载,然后是构造方法,最后是普通方法
      *  注释:
      *  (1)静态部分先初始化后执行,然后是非静态部分先初始化后执行,另外方法(静态方法、普通方法、构造方法)只在调用时执行
      *  (2) 静态属性加载完成(也就是初始化,赋予默认值后)会执行(只执行一次),
      *  而此时如果调用了实例化过程,则会暂停类的加载,进行实例化。
      *  
      */


        public static test t2 = new test("66");// 此处调用了实例化过程,test 类的加载被暂停,开始加载 ClassOrderTest
        //public static int i = print("i");
        public static int n = 99;
        public int j = print("j");

        {
            print("构造块");
        }
        static {
            print("静态块");
        }
        public static int i = print("i");
        public static test t1 = new test("t1");
        public static long l  = 66;
        public test(){
            System.out.println("ljhfgjk");
        }
        {
            System.out.println("构造快");
        }
        public test(String str) {
            System.out.println((++k) + ":" + str + "   i=" + i + "    n=" + n);
            ++i;
            ++n;
        }
        public static int print(String str) {
            System.out.println((++k) + ":" + str + "   i=" + i + "    n=" + n);
            ++n;
            return ++i;
        }
        public static int k = 6;
}
相关标签: java类的加载过程