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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魏兴发 黑马帝   /  2011-11-5 10:13  /  1835 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当我们使用某个类时,会将该类的字节码文件缓存到内存中,这个字节码存在内存的什么位置啊?堆内存?栈内存……???

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
自己先顶一下啦!!!!
回复 使用道具 举报
本帖最后由 成杰 于 2011-11-5 10:35 编辑

类的字节码文件被加载到内存,指的是 内容以字节的形式存入内存中
栈内存中存放得时基本变量和局部变量
堆内存中存放的是引用类型的和静态变量

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
首先,java在内存开辟分区为:栈内存,堆内存,方法区,还有一个区我不知名字,(知道的,请分享)

这是我个人的猜测:肯定有很多不对或不知道,愿指证!

类加载器将.class文件加载到了方法区中, 其存在形式是字节码, 称为一个对象:字节码文件对象,
在方法区中字节码对象又被分区存放了: 静态变量和静态方法存在方法区的静态区,普通方法存在方法区的变通方法区,对于其他成员变量可能还有相关的区存放

下面对了解的一点运行过程也分析一下,指正:
当程序运行到方法时或普通成员变量时,就会将方法区中的方法或成员变量加载到栈内存,
当栈内存在的方法运行到new一个对象时,方法区中的字节码对象被new(加载)一个到堆内存,方法区中的方法或变量运行过后在栈内存被释放,

如果上面的完全不对,也有可能是栈内存,堆内存,方法区之外的另外一个区,存放了字节码对象

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马