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

本帖最后由 苏格拉底的弟子 于 2012-1-6 10:29 编辑

堆内存只存对象 那么方法区里面只存方法吗?里面还有哪些东西?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

8 个回复

倒序浏览
Java内存分配与管理是Java的核心技术之一,一般Java在内存分配时会涉及到以下区域:

寄存器:我们在程序中无法控制
栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中
堆:存放用new产生的数据
静态域:存放在对象中用static定义的静态成员
常量池:存放常量
非RAM存储:硬盘等永久存储空间

方法区:所有线程共享,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码。因为存储加载的class文件,所以常量池(class文件常量池和运行时常量池)也在这里,即常量池是方法区的一部分。
回复 使用道具 举报
Java内存分配与管理是Java的核心技术之一,一般Java在内存分配时会涉及到以下区域:

寄存器:我们在程序中无法控制
栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中
堆:存放用new产生的数据
静态域:存放在对象中用static定义的静态成员
常量池:存放常量
非RAM存储:硬盘等永久存储空间

方法区:所有线程共享,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码。因为存储加载的class文件,所以常量池(class文件常量池和运行时常量池)也在这里,即常量池是方法区的一部分。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
方法区(也叫共享区、数据区):
类中的共享数据(被static修饰的数据、方法)、方法(没有被static修饰的方法)都存储在这里。
简单说方法区是所有方法(包括被静态修饰的方法)、被静态修饰的数据的存储区,他们都随着对象存储在方法区。
希望对你有用。
回复 使用道具 举报
楼上的图好啊
回复 使用道具 举报
  ◆寄存器:我们在程序中无法控制                                                                           ------我们控制不了,在视频没有讲过
  ◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中      
  ◆堆:存放用new产生的数据
  ◆静态域:存放在对象中用static定义的静态成员
  ◆常量池:存放常量                                                                                              -------也给就是视频说的方法区
  ◆非RAM存储:硬盘等永久存储空间                                                                         ---------也给在视频应该也没有接触过

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

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