【发布时间】:2012-11-22 11:07:08
【问题描述】:
您可以在下面看到一个 Java 类中的静态变量 counter。
问题是这个变量什么时候会重置?例如,当我重新启动程序时,计算机。它可以重置的其他可能情况是什么?
另一个问题是:这个变量增加的次数少于函数 do() 执行次数的原因是什么?例如,是否可以启动 java Whatever 类的多个进程?或者它可能是具有多个线程/服务器等的东西?
class Whatever {
static int counter = 0;
function do() {
counter++;
//...
}
}
附加问题:如果多个线程执行函数do(),计数器变量将如何表现?会小于函数do()的执行次数吗?
【问题讨论】:
-
static变量仅在程序执行开始时初始化一次。 -
您的
counter是包私有的,因此同一个包中的任何类都可以为其分配任意值。 -
顺便说一句,
do是保留关键字,不能用作方法名。
标签: java static static-members