有个类public class StaticTest {
private static int id=0;
public void go() {
System.out.println(id++);
}
}
里面有个静态属性id,
另外一个类:public class Test {
public static void main(String[] args) {
for(int i=0;i<5;i++){
new StaticTest().go();
}
}
}为什么输出时0,1,2,3,4?虽然说静态的属性石公用,但重新创建new对象后为什么还会一直增加?static
private static int id=0;
public void go() {
System.out.println(id++);
}
}
里面有个静态属性id,
另外一个类:public class Test {
public static void main(String[] args) {
for(int i=0;i<5;i++){
new StaticTest().go();
}
}
}为什么输出时0,1,2,3,4?虽然说静态的属性石公用,但重新创建new对象后为什么还会一直增加?static
静态属性第一次new 对象时创建,以后再new 对象时不再创建,共用第一次创建的那个。
第一次循环刚刚开始的时候,StaticTest这个类的对象,也就是StaticTest.class,首先被加载到内存中,其中包含该类所有的静态变量,然后StaticTest这个类的实例才产生,所以每次增加都是增加在同一个id属性上
id++是先取id,后执行++操作,所以输出结果会从0开始
题中创建了5个对象(new了5次)每创建一次对象修改一次id值。。