java静态变量的生命周期_java – 静态(类)变量的生命周期

您似乎没有区分静态变量和实例变量.静态变量是在类本身上定义的.实例变量仅存在于类实例中.

例:

class Test {

public static int a;

}

变量a在类本身上定义,而不是在类的实例上定义.每个实例都将访问同一个变量.如果一个实例将a的值设置为5,则每个其他实例都将该值视为5.一旦实例消失,该变量将不会消失,因为它绝不会绑定到任何实例(它是类变量).它会一直持续到那个时间结束(或者直到应用程序退出,以先到者为准).

另一方面,以下示例使用实例变量:

class Test {

public int a;

}

此变量只能从类的实例访问.每个实例都有一个不同的变量副本.一旦实例被销毁,变量就会随之而来.

为了显示:

import java.util.List;

import java.util.ArrayList;

class Test {

// instanceVar will be initialized whenever a new Test object is created

private List instanceVar = new ArrayList();

// staticVar will be initialized right now

private static List staticVar = new ArrayList();

public void updateInstanceVar() {

instanceVar.add(1);

instanceVar.add(2);

}

public void updateStaticVar() {

staticVar.add(1);

staticVar.add(2);

}

public static void main(String[] args) {

Test test1 = new Test();

test1.updateInstanceVar(); // test1.instanceVar = [1, 2]

test1.updateStaticVar(); // Test.staticVar = [1, 2]

Test test2 = new Test();

test2.updateInstanceVar(); // test2.instanceVar = [1, 2]

test2.updateStaticVar(); // Test.staticVar = [1, 2, 1, 2]

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值