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

 更新时间:2020年08月28日 11:18:33   作者:古城,老巷  
这篇文章主要介绍了通过代码实例解析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出来的对象 方法快先构造方法执行

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

相关文章

  • 使用IDEA直接连接MySQL数据库的方法

    使用IDEA直接连接MySQL数据库的方法

    这篇文章主要介绍了如何使用IDEA直接连接MySQL数据库,首先需要新建一个空项目,第一次连接 需要先下载驱动,文中给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • SpringBoot中Redis的缓存更新策略详解

    SpringBoot中Redis的缓存更新策略详解

    这篇文章主要介绍了SpringBoot中Redis的缓存更新策略,缓存一般是为了应对高并发场景、缓解数据库读写压力,而将数据存储在读写更快的某种存储介质中(如内存),以加快读取数据的速度,需要的朋友可以参考下
    2023-08-08
  • Java8中用foreach循环获取对象的index下标详解

    Java8中用foreach循环获取对象的index下标详解

    这篇文章主要给大家介绍了关于Java8中用foreach循环获取对象的index下标的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • javaFX实现五子棋小游戏

    javaFX实现五子棋小游戏

    这篇文章主要为大家详细介绍了javaFX实现五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • mybatis查询匹配机制图文详解

    mybatis查询匹配机制图文详解

    这篇文章主要给大家介绍了关于mybatis查询匹配机制的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java实现文件压缩为zip和解压zip压缩包

    Java实现文件压缩为zip和解压zip压缩包

    这篇文章主要为大家介绍了Java如何实现将文件压缩为zip以及解压zip压缩包,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-06-06
  • mybatis-plus查询无数据问题及解决

    mybatis-plus查询无数据问题及解决

    这篇文章主要介绍了mybatis-plus查询无数据问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • java中的动态代理与责任链模式详解

    java中的动态代理与责任链模式详解

    这篇文章主要介绍了java中的动态代理与责任链模式详解,动态代理提供了一种灵活且非侵入式的方式,可以对对象的行为进行定制和扩展,它在代码重用、解耦和业务逻辑分离、性能优化以及系统架构中起到了重要的作用,需要的朋友可以参考下
    2023-08-08
  • springcloud配置ssh的问题及解决方法

    springcloud配置ssh的问题及解决方法

    这篇文章主要介绍了springcloud配置ssh,本文给大家介绍在配置过程中遇到的问题及解决方法,通过结合实例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C++享元模式详解

    C++享元模式详解

    这篇文章主要为大家详细介绍了C++设计模式之享元模式Flyweight,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论