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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Archer 中级黑马   /  2014-11-24 09:52  /  1304 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中把内存分为5份:栈内存,堆内存,方法区,本地方法区,寄存器,这几种内存都有什么特性和共性呢?

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3

查看全部评分

3 个回复

倒序浏览
cbb 中级黑马 2014-11-24 13:11:02
沙发
栈 堆 和方法区 还多少知道点  那两个 只知道名字,完全不懂的说~~~坐等答案吧!
回复 使用道具 举报
本地方法区,存放的是native方法的相关状态,而native方法是用C语言写的。在java一些api底层方法里,是调用了native 方法的。寄存器,就是存放jvm即将执行指令的地址的
回复 使用道具 举报
共同学习:
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虚拟机

评分

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

查看全部评分

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