黑马程序员技术交流社区

标题: 静态变量生命周期的问题 [打印本页]

作者: 高双武    时间: 2011-11-9 18:56
标题: 静态变量生命周期的问题
静态变量随类的加载而加载随类的消失而消失,实例变量随对象的建立而建立随对象的消失而消失,谁能帮我举个例子说明一下  静态变量的生命周期长于实例变量的生命周期?
作者: 咪咪    时间: 2011-11-9 21:45
静态变量是从创建类对象时就在内存里开辟了存储空间的,类似于构造函数,而普通变量只有实例化后才在内存里开辟空间的,如果一个程序什么也没有,只是打印出一个静态一个普通的变量的话,那么静态变量出生的早可是程序关闭时两种变量同时牺牲,那么静态不就比普通的变量活的时间长吗?没法用程序演示,咱不能查看内存啊。
作者: 梦女孩    时间: 2011-11-9 21:49
静态变量的周期长,你工程运行的时候,它就已经存在了。而动态变量是从实例创建开始的。如果实例对象不存在引用的话,可能会被JVM回收。但是,静态变量只有在工程结束之时回收。
作者: 胡文杰    时间: 2011-11-9 23:45
最简单的就是,一个类中静态方法或者变量,在另一个类中可以通过类名.静态方法或者变量来访问,非静态方法和变量则不可以访问!如果用类名.非静态方法或者变量来访问的话,则编译就会提示出现错误,这就可以见得,静态方法或者变量已经在内存中,而非静态方法或者变量在内存中没有,也就是没有被创建。这样的话,静态变量或者方法是不是要比非静态方法或者变量的生命周期长呢?!呵呵……个人见解!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2