黑马程序员技术交流社区

标题: java内存管理 [打印本页]

作者: Archer    时间: 2014-11-24 09:52
标题: java内存管理
java中把内存分为5份:栈内存,堆内存,方法区,本地方法区,寄存器,这几种内存都有什么特性和共性呢?
作者: cbb    时间: 2014-11-24 13:11
栈 堆 和方法区 还多少知道点  那两个 只知道名字,完全不懂的说~~~坐等答案吧!
作者: 哈达洋    时间: 2014-11-24 13:57
本地方法区,存放的是native方法的相关状态,而native方法是用C语言写的。在java一些api底层方法里,是调用了native 方法的。寄存器,就是存放jvm即将执行指令的地址的
作者: 依米阳光    时间: 2014-11-24 15:02
共同学习:
Java把内存分成:栈内存,堆内存,方法区,本地方法区和寄存器等。
1、栈内存
  (1)一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。
  (2)每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
  (3)栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
  (4)当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
  (5)当数据使用完,所占空间会自动释放。

2、堆内存
  (1)堆内存用于存放由new创建的对象和数组。

  (2)每一个实体都有一个内存地址值
  (3)实体中的变量都有默认初始化值
  (4)实体不再被使用,会在不确定的时间内被垃圾回收器回收
3、方法区
  1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
  2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
4、寄存器,和本地方法栈,这两个用不到,除非要开发Java虚拟机




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2