Java实现静态数据初始化的方法-创新互联

今天就跟大家聊聊有关Java 实现静态数据初始化的方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

专注于为中小企业提供网站设计制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业兴文免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
class Bowl {
  public Bowl(int marker) {
    System.out.println("Bowl(" + marker + ")");
  }
 
  void f1(int marker) {
    System.out.println("f1(" + marker + ")");
  }
}
 
class Table {
  static Bowl bowl = new Bowl(1);
 
  public Table() {
    System.out.println("Table()");
    bowl2.f1(1);
  }
 
  void f2(int marker) {
    System.out.println("f2(" + marker + ")");
  }
 
  static Bowl bowl2 = new Bowl(2);
}
 
class Cupboard {
  Bowl bowl3 = new Bowl(3);
  static Bowl bowl4 = new Bowl(4);
 
  public Cupboard() {
    System.out.println("Cupboard()");
  }
 
  void f3(int marker) {
    System.out.println("f3(" + marker + ")");
  }
 
  static Bowl bowl5 = new Bowl(5);
}
 
public class StaticInit {
 
  public static void main(String[] args) {
    //第三步
    System.out.println("Creating new Cupboard in main");
    //第四步
    //因为Cupboard内的静态变量已经初始化完成,所以不再初始化(无论创建多少个对象,静态数据都是只占用一份存储区域)
    //但是里边的类成员变量 bowl3 还是需要进行二次初始化的,因为你这是new对象,所以打印 Bowl(3)
    //然后调用该对象的无参构造函数,打印 Cupboard()
    new Cupboard();
    //第五步
    System.out.println("Creating new Cupboard in main");
    //第六步
    //和第四步一样,执行初始化,打印 Bowl(3),然后调用无参构造函数,打印 Cupboard()
    new Cupboard();
    //第七步
    table.f2(111);
    //第八步
    cupboard.f3(111);
 
  }
    //Java 数据类型、对象引用 和 构造器 之间的初始化顺序 /tupian/20230522/debedcef327c4872933e0b2f1ac7cb71.html
  //第1步:
  //先初始化静态代码块、
  //Table 类中也含有静态引用变量,所以先去执行bowl引用指向的对象的创建,所以先打印 Bowl(1)
  //然后该类中还有一个静态对象,所以立即去初始化这个静态对象,然后打印 Bowl(2)
  //执行完成以后,正式创建对象,执行Table类的默认无参构造函数,打印 Table()
  //构造函数内 又使用静态变量bowl2 调用了其对象内的方法,所以打印 f1(1)
  //到此这一行代码执行的初始化全部执行完毕
  static Table table = new Table();
  //第2步:
  //初始化 Cupboard 类,因为 Cupboard 类中也含有两个静态对象,所以依次执行 Bowl(4) 和 Bowl(5)
  //在执行Cupboard构造函数之前先执行变量初始化的规则,所以 bowl3 先执行,打印 Bolw(3)
  //然后执行无参构造函数,打印 Cupboard()
  //到此,这行代码的初始化全部执行完毕
  static Cupboard cupboard = new Cupboard();
   
}

名称栏目:Java实现静态数据初始化的方法-创新互联
分享URL:https://www.cdcxhl.com/article42/dipdhc.html

成都网站建设公司_创新互联,为您提供微信公众号面包屑导航商城网站域名注册全网营销推广网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计