JAVA类的生命周期实践加理解

代码

public class TestClass {

    public static int k=0;

    public static TestClass t1=new TestClass("t1");
    public static TestClass t2=new TestClass("t2");

    public static int i=print("i");

    public static int n=99;

    public int j=print("j");

    {
        print("构造块");
    }

    static {
        print("静态块");
    }

    public TestClass(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);
        ++n;
        return ++ i;
    }

    public static void main(String[] args){
        System.out.println("=========start============");
        TestClass t = new TestClass("init");
        System.out.println("=========end============");
    }
}

执行结果

1:j   i=0   n=0
2:构造块   i=1   n=1
3t1i=2n=2
4:j   i=3   n=3
5:构造块   i=4   n=4
6t2i=5n=5
7:i   i=6   n=6
8:静态块   i=7   n=99
=========start============
9:j   i=8   n=100
10:构造块   i=9   n=101
11initi=10n=102
=========end============

讲解

//	代码由上到下 依次执行
//	由static修饰的变量或方法是在方法区,属于类变量、类方法
//	new对象这个操作,new出来的对象在堆里 对象的引用在栈里
//	new出来的对象  方法快先构造方法执行
posted @ 2020-08-24 14:25  古城,老巷  阅读(124)  评论(0编辑  收藏  举报