A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高双武 黑马帝   /  2011-11-9 18:56  /  1997 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态变量随类的加载而加载随类的消失而消失,实例变量随对象的建立而建立随对象的消失而消失,谁能帮我举个例子说明一下  静态变量的生命周期长于实例变量的生命周期?

3 个回复

正序浏览
最简单的就是,一个类中静态方法或者变量,在另一个类中可以通过类名.静态方法或者变量来访问,非静态方法和变量则不可以访问!如果用类名.非静态方法或者变量来访问的话,则编译就会提示出现错误,这就可以见得,静态方法或者变量已经在内存中,而非静态方法或者变量在内存中没有,也就是没有被创建。这样的话,静态变量或者方法是不是要比非静态方法或者变量的生命周期长呢?!呵呵……个人见解!
回复 使用道具 举报
静态变量的周期长,你工程运行的时候,它就已经存在了。而动态变量是从实例创建开始的。如果实例对象不存在引用的话,可能会被JVM回收。但是,静态变量只有在工程结束之时回收。
回复 使用道具 举报
咪咪 来自手机 黑马帝 2011-11-9 21:45:48
沙发
静态变量是从创建类对象时就在内存里开辟了存储空间的,类似于构造函数,而普通变量只有实例化后才在内存里开辟空间的,如果一个程序什么也没有,只是打印出一个静态一个普通的变量的话,那么静态变量出生的早可是程序关闭时两种变量同时牺牲,那么静态不就比普通的变量活的时间长吗?没法用程序演示,咱不能查看内存啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马