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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我只知道堆里可以存对象,数组,还有就是成员变量在堆内存,局域变量在栈内存,这个有点不太理解

8 个回复

倒序浏览
这里边是一个图,,不知道你能不能看懂,,不行的话,在多看看Java基础视频中的代码内存分析

未命名.rar

3.63 KB, 下载次数: 750

回复 使用道具 举报
内存分为堆区和栈区,堆区用来放实体(对象、数组啥的,使用完毕后不会自动消失),栈区用来存放局部变量(就是在函数比如:main函数,或是类似for循环的语句中定义的都算局部变量)
回复 使用道具 举报
栈内存 存放局部变量
对内存 存放成员变量
方法区 存放静态的
我是这么理解的,也不知道对不对
回复 使用道具 举报

栈内存 存放全局变量
堆内存 存放局部变量
方法区 存放静态变量

评分

参与人数 1黑马币 +24 收起 理由
fantacyleo + 24

查看全部评分

回复 使用道具 举报
栈内存:存储的是局部变量,数据一使用完,会自动在内存中释放。
堆内存:存储的是所有new出来的。用完不会立即释放,要等到垃圾回收器回收,堆内存中有垃圾回收机制
方法区:是用来存储方法的,String字符串常量池
回复 使用道具 举报
栈内存里面的东西一旦使用完毕就会立马被释放,堆内存里面的东西使用完了则会等待垃圾回收机制来收它,而方法区又叫静态区,它里面的东西都是整个程序永远唯一的东西!所以说他们各自所存的变量和变量的作用域有关系。
回复 使用道具 举报
是有点 搞混淆
回复 使用道具 举报
不同内存区域的功能和特点:
栈区:存放局部变量(变量名,对象的引用等)特点:内存随着函数的调用而开辟,随着函数调用结束而释放。
堆区:存放对象(也就是new出来的东西)特点:可以跨函数使用,每个对象有自己对应的存储空间。
方法区:静态域:存放在对象中用static定义的静态成员。
                常量池:存放常量。(常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。)
                  方法:
本地方法区:跟系统相关的方法;
寄存器:由cpu执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马