黑马程序员技术交流社区
标题:
栈内存,堆内存,方法区,分别都存的是什么
[打印本页]
作者:
黑马小成
时间:
2015-4-8 23:44
标题:
栈内存,堆内存,方法区,分别都存的是什么
我只知道堆里可以存对象,数组,还有就是成员变量在堆内存,局域变量在栈内存,这个有点不太理解
作者:
奋斗的黑马
时间:
2015-4-9 08:20
这里边是一个图,,不知道你能不能看懂,,不行的话,在多看看Java基础视频中的代码内存分析
未命名.rar
2015-4-9 08:19 上传
点击文件名下载附件
3.63 KB, 下载次数: 750
作者:
zhy934453950
时间:
2015-4-9 08:50
内存分为堆区和栈区,堆区用来放实体(对象、数组啥的,使用完毕后不会自动消失),栈区用来存放局部变量(就是在函数比如:main函数,或是类似for循环的语句中定义的都算局部变量)
作者:
幕丶落
时间:
2015-4-9 09:26
栈内存 存放局部变量
对内存 存放成员变量
方法区 存放静态的
我是这么理解的,也不知道对不对
作者:
clinber
时间:
2015-4-9 09:52
栈内存 存放全局变量
堆内存 存放局部变量
方法区 存放静态变量
作者:
执梦而行
时间:
2015-4-9 10:15
栈内存:存储的是局部变量,数据一使用完,会自动在内存中释放。
堆内存:存储的是所有new出来的。用完不会立即释放,要等到垃圾回收器回收,堆内存中有垃圾回收机制
方法区:是用来存储方法的,String字符串常量池
作者:
caotierong
时间:
2015-4-9 10:24
栈内存里面的东西一旦使用完毕就会立马被释放,堆内存里面的东西使用完了则会等待垃圾回收机制来收它,而方法区又叫静态区,它里面的东西都是整个程序永远唯一的东西!所以说他们各自所存的变量和变量的作用域有关系。
作者:
东东西西
时间:
2015-4-9 10:52
是有点 搞混淆
作者:
showdy
时间:
2015-4-9 10:59
不同内存区域的功能和特点:
栈区:存放局部变量(变量名,对象的引用等)特点:内存随着函数的调用而开辟,随着函数调用结束而释放。
堆区:存放对象(也就是new出来的东西)特点:可以跨函数使用,每个对象有自己对应的存储空间。
方法区:静态域:存放在对象中用static定义的静态成员。
常量池:存放常量。(常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。)
方法:
本地方法区:跟系统相关的方法;
寄存器:由cpu执行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2