java static 变量的介绍,写个例子说明一下:
package demo;
import java.util.ArrayList;
public class TestArray {
public static ArrayList<String> ostreams = new ArrayList<String>();
public TestArray (){
System.out.println(ostreams.size());
}
public void addArray(String s){
ostreams.add(s);
}
public static void main(String[] args) {
TestArray ta1 = new TestArray();
ta1.addArray("s1");
TestArray ta2 = new TestArray();
ta2.addArray("s2");
TestArray ta3 = new TestArray();
ta3.addArray("s3");
TestArray ta4 = new TestArray();
ta4.addArray("s4");
}
}
控制台显示结果:
0
1
2
3
修改一下代码,看看有什么变化。去掉 static
package demo;
import java.util.ArrayList;
public class TestArray {
public ArrayList<String> ostreams = new ArrayList<String>();
public TestArray (){
System.out.println(ostreams.size());
}
public void addArray(String s){
ostreams.add(s);
}
public static void main(String[] args) {
TestArray ta1 = new TestArray();
ta1.addArray("s1");
TestArray ta2 = new TestArray();
ta2.addArray("s2");
TestArray ta3 = new TestArray();
ta3.addArray("s3");
TestArray ta4 = new TestArray();
ta4.addArray("s4");
}
}
控制台显示结果:
0
0
0
0
以上结果很容易看出来,static 变量,并不会受 new 创建对象而创建,但是当修改staitc变量的,会影响到所有对象。
本文通过两个实例对比展示了Java中static变量的特点。首先介绍了static变量如何被所有对象共享,随后通过去除static关键字后的代码运行结果,突出了static变量与普通成员变量的区别。

被折叠的 条评论
为什么被折叠?



