温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-09-13 06:34:17 来源:脚本之家 阅读:104 作者:古城,老巷 栏目:开发技术

代码

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI