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变量的,会影响到所有对象。