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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丰亚彬 高级黑马   /  2012-5-24 21:06  /  1765 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丰亚彬 于 2012-5-25 11:26 编辑

今天在复习总结静态的时候,发现了一个疑惑,重新看了一遍视频发现老师果然没有给答案。静态成员是优先于对象存在的,随着类加载而加载,随着类消失而消失,我们知道对象如果没有句柄引用就会被虚拟机垃圾回收器清除,那么类什么时候从内存中消失呢?是程序结束还是虚拟机进程停止工作?

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
首先,程序结束和虚拟机进程停止工作是同一回事,其次,类和类的对象不是一回事,类是静态的,是全局的,在第一次被使用的时候被加载,直到程序结束才会结束。
回复 使用道具 举报
直到程序结束才会被释放。
回复 使用道具 举报
JAVA的程序的运行机制

我们写的每一个JAVA文件,在编译过后都以class文件的形式存在,在使用了一次之后,
class这个字节码文件就会被类加载器 classLoader加载进内存中,方便以后的重复使用

垃圾回收机制:一般回收的是我们不再使用的变量,对象等类的成分所占的内存
而这个class文件会一直保留到内存的运行结束!
回复 使用道具 举报
杨国祯 发表于 2012-5-24 22:50
JAVA的程序的运行机制

我们写的每一个JAVA文件,在编译过后都以class文件的形式存在,在使用了一次之后,

恩,这回我明白了,毕老师视频里只说堆中对象的生命周期了,没说类的生命周期
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马