java static

static只执行一次,并且是在最前面执行,在创建对象之后,static对象才会创建,而且不会重复创建

public static void main(String[] args) {
    System.out.println("Inside main()");
    Cups.c1.f(99); // (1)
}

static Cups x = new Cups(); // (2)
static Cups y = new Cups(); // (3)



public class Cup {
    Cup(int marker) {
        System.out.println("Cup(" + marker + ")");
    }
    void f(int marker) {
        System.out.println("f(" + marker + ")");
    }
}

public class Cups {
    static Cup c1;
    static Cup c2;
    static {
        c1 = new Cup(1);
        c2 = new Cup(2);
    }
    Cups() {
        System.out.println("Cups()");
    }
}


如果注释1,2,3行,只输出Inside main()<在创建对象之后,static对象才会创建>

注释2,3行输出

Inside main()
Cup(1)
Cup(2)
f(99)

注释3行

Cup(1)
Cup(2)
Cups()
Inside main()
f(99)

<上面两个对比,main方法中static对象先加载,然后再执行Cups.c1.f(99)>

放开注释

Cup(1)
Cup(2)
Cups()
Cups()
Inside main()
f(99)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值