public class Count2
{
public static void prt(String s)
{
System.out.print(s);
}
public static void main(String[] args)
{
Value v1, v2;
v1 = new Value();
v2 = new Value();
prt("v1.c=" + v1.c + " v2.c=" + v2.c);
v1.inc();
prt(" v1.c=" + v1.c + " v2.c=" + v2.c);
}
}
结果为:v1.c=0 v2.c=0 v1.c=1 v2.c=1
由此可以证明它们共享一块存储区。
接下来我们看看静态变量的初始化问题。
如果你需要通过计算来初始化你的static变量,你可以声明一个static块,
Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,
一些static变量,以及一个static 初始化块:
class Value3
{
static int c = 0;
Value3()
{
c = 15;
}
Value3(int i)
{
c = i;
}
static void inc()
{
c++;
}
}
public class Count
{
public static void prt(String s)
{
System.out.println(s);
}