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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高顺德 中级黑马   /  2013-3-26 23:51  /  2126 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 天下 于 2013-3-27 12:11 编辑

为什么用的存放在堆?有的存放在栈?这个有什么不同的吗?static 属性 方法 都是放在哪里的?

点评

如果你的问题已经得到解决后,请及时将主题贴类型改为 [已解决] ,如还有问题可继续追问。  发表于 2013-3-27 04:53

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

10 个回复

倒序浏览
两个内存是不同的...比如int x=1,就是临时变量会再栈内存中.  而建立对象比如Demo d=new Demo();这个就是咱堆内存中了
回复 使用道具 举报
栈内存 和堆内存,是内存中的两个区域,栈内存中的方法和数据在使用完后会自动释放,但是堆内存中的不能自动释放,必须要JAVA虚拟机的垃圾回收机制来回收才能释放!
回复 使用道具 举报
栈内存:
  存储的是局部变量,for中的,函数中的
  栈内存还运行函数,函数运行的时候,是在栈内存中运行的
  特点:存储的变量,必须手动赋值
        无论局部变量,还是函数,运行完成后,就释放了,出去了

堆内存:
  存储的是,容器实体,new 建立的容器,存储在堆内存中,全局变量
  特点,存储进来的,不能自动释放,需要JVM启动垃圾回收机制,清除
        堆内存中,存储的数据,都有默认值...int 0 double 0.0  boolean false String null  char \u....每一个实体都有内存地址值

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
可以这么简单的给你介绍下堆和栈的区别:

栈内存:所有基本数据类型的值都是存在栈内存中   比如: int num = 10,那么栈内存开辟一个空间给num,并让num初始化为10
            栈内存中还会存一些引用,比如说String s = "abc"; 那么此时在栈内存开辟一个空间给 s 变量,但是字符串真正的内容abc是存在堆内存中,这个要明白。s 只是一个地址指向真正的字符串对象

堆内存: 堆内存一般都存储引用数据类型,比如说:字符串,类的实例:(new Person())
   Person p = new Person();
p是存在栈内存  而new Person()是存在堆内存, p------->new Person();
这样讲你能明白吗?

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
栈(操作系统):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放
堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些
堆(数据结构):堆可以被看成是一棵树,如:堆排序
栈(数据结构):一种后进先出的的数据结构

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
对于栈内存:是跟CPU交互最快的地方,一般栈内存中存放的都是一些引用变量,比如说你int[] a = {1,2,3,4}; 栈内存中村的只是一个a的地址值,因为栈内存空间是比较小的。
对于堆内存:主要是存储对象,你new出一个对象的时候,栈内存中存了地址值,指向堆内存中的对象空间。
这就是栈和堆的基本区别。
回复 使用道具 举报
杨明宁 发表于 2013-3-27 00:03
栈内存:
  存储的是局部变量,for中的,函数中的
  栈内存还运行函数,函数运行的时候,是在栈内存中运行的 ...

static 属性 方法 都是放在哪里的?
回复 使用道具 举报
static 属性 方法 都是放在哪里的?
回复 使用道具 举报
高顺德 发表于 2013-3-27 12:09
static 属性 方法 都是放在哪里的?

没明白你要表达的问题,可以问得具体点吗?
回复 使用道具 举报
Java把内存划分成两种:一种是栈内存,一种是堆内存。
heap堆:用来存放new出来的东西
stack栈:局部变量。
static变量存放在data sagment
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马