通过代码实例解析JAVA类生命周期

2023-05-08,,

代码

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出来的对象 方法快先构造方法执行

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

《通过代码实例解析JAVA类生命周期.doc》

下载本文的Word格式文档,以方便收藏与打印。