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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© i蓝蓝蓝天 初级黑马   /  2012-5-5 17:38  /  2181 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类变量和类方法都存在于方法区中,类变量随着类的消亡而消失,那类方法和类变量的生命周期是一样的吗?

5 个回复

倒序浏览
类变量和类方法都是随着类的加载而进入方法区,此时这个类在内存中是一Class(注意是Class不是class)类的对象,且同一个类在内存中有且仅有一个Class对象,类在内存中是以字节码的形式存在的,所以类的成员变量和成员方法也是一字节码的形式存在,如果这个类的字节码从内存中被回收了那么类的成员变量和成员方法肯定也就没了。” 类变量随着类的消亡而消失 “,   你这句话让人纳闷,你的意思是 这个类实例化后的对象 里面的成员变量随着这个对象消亡而消失吧?
回复 使用道具 举报
徐慧书 发表于 2012-5-5 17:50
类变量和类方法都是随着类的加载而进入方法区,此时这个类在内存中是一Class(注意是Class不是class)类的 ...

不是,看视频的时候里面有讲到类变量和成员变量的区别,成员变量是随着对象的消失而消失的,但是类变量是与类同时存在的。视频里也有讲到类方法和类变量都是存在于方法区的,所以我就想知道类方法是不是也和类变量的生命周期一样呢?还是说它只是被调用的时候创建还是怎么的。
回复 使用道具 举报
类方法是调用到的时候才存在内存中。
类变量是一加载就存在内存中的,类变量的生命周期比类方法长
回复 使用道具 举报
谭景宾 发表于 2012-5-5 18:18
类方法是调用到的时候才存在内存中。
类变量是一加载就存在内存中的,类变量的生命周期比类方法长 ...

明白了,谢谢啦。
回复 使用道具 举报
来看看! 还学到东西了!嘿嘿!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马