黑马程序员技术交流社区
标题:
关于static的问题
[打印本页]
作者:
郭亚飞
时间:
2011-9-2 14:27
标题:
关于static的问题
写了一个使用静态变量统计类产生的实例对象个数的程序,如下:
class Person
{
static int count=0;
public Person()
{
System.out.println(++count);
}
}
class TestPerson
{
public static void main(String [] args)
{
new Person();
new Person();
new Person();
new Person();
}
}
把count定义为静态变量的时候,运行结果是1 2 3 4,
如果去掉static,运行结果是1 1 1 1,
这是为什么啊,区别在哪里?视频上讲的,听了好几遍,也没听明白,只知道静态变量被所有的实例对象所共享。这个问题总感觉像窗户纸,一点就破,但就是想不明白,求高手点破~
作者:
匿名
时间:
2011-9-2 14:38
这个简单来说就是 这个属性的生命周期问题
加上static 这个属性只有在第一次调用person类的时候被赋值,然后被存放在内存中,由于类存存在这个属性,下次调用person时候,count属性不会被重新赋值 而是直接使用内存中的count,
去掉static的话 count属性会跟随着person的使用结束,就被销毁掉,每次使用用person类,内存新开辟一个空间给count,初始值始终是0
作者:
匿名
时间:
2011-9-2 16:31
标题:
回复 沙发 的帖子
醍醐灌顶~~~谢谢~
作者:
匿名
时间:
2011-9-2 19:32
这个 static 很重要,要记牢了.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2