黑马程序员技术交流社区

标题: java中的常用的内存区域的问题 [打印本页]

作者: 沐阳6011    时间: 2014-6-6 10:50
标题: java中的常用的内存区域的问题
主要有4块内存区域。
除了栈内存,堆内存,还有两个是全局数据区(保存static类型的属性)和全局代码区(保存所有的方法定义)。
是这样的吗?毕老师讲的貌似只有一个方法区。

作者: shisishishisi    时间: 2014-6-6 12:32
内存空间:
        1、栈内存
                用于存储局部变量,当数据使用完,所占空间会自动释放
        2、堆空间
                数组和对象,通过new建立的实例都存放在堆内存中
                每一个实体都有内存地址
                实体中的变量都有默认的初始化值
                实体不在被使用,会在不确定的时间内被垃圾回收器回收
        3、方法区
        4、本地方法区
        5、寄存器
作者: 提菩--空    时间: 2014-6-6 13:14
shisishishisi 发表于 2014-6-6 12:32
内存空间:
        1、栈内存
                用于存储局部变量,当数据使用完,所占空间会自动释放

说的很全了
作者: 沐阳6011    时间: 2014-6-6 14:05
shisishishisi 发表于 2014-6-6 12:32
内存空间:
        1、栈内存
                用于存储局部变量,当数据使用完,所占空间会自动释放

那对应的哪个是我这边的全局方法区,全局数据区呢?
作者: Wokno    时间: 2014-6-6 18:22
1、stack
     用于存储所有的局部变量,使用完后自动释放。
2、heap
     用于存储所有new出来的东西,使用完后由java的垃圾收集机制自动清理。
3、data segment
     用于存储静态变量和字符串常量。
4、code segment
     用于存储程序代码。
作者: 沐阳6011    时间: 2014-6-6 18:36
Wokno 发表于 2014-6-6 18:22
1、stack
     用于存储所有的局部变量,使用完后自动释放。
2、heap

看不懂英文,不过还是谢谢了
作者: Wokno    时间: 2014-6-6 18:48
沐阳6011 发表于 2014-6-6 18:36
看不懂英文,不过还是谢谢了

栈、堆、数据区、代码区
作者: 沐阳6011    时间: 2014-6-6 19:32
Wokno 发表于 2014-6-6 18:48
栈、堆、数据区、代码区

搜噶,谢谢哥们啦:lol
作者: 任黎明    时间: 2014-6-6 20:08
我来学习了!!!!!!!!!!
作者: 艮昕辶    时间: 2014-6-7 10:52
我的理解一般是栈内存 堆内存和静态区
作者: 沐阳6011    时间: 2014-6-7 11:20
艮昕辶 发表于 2014-6-7 10:52
我的理解一般是栈内存 堆内存和静态区

静态区就包括全局方法区和全局数据区对吧?
作者: 艮昕辶    时间: 2014-6-7 11:22
沐阳6011 发表于 2014-6-7 11:20
静态区就包括全局方法区和全局数据区对吧?

我的静态区的概念就是static method()和static int x;

作者: Wokno    时间: 2014-6-7 13:45
沐阳6011 发表于 2014-6-6 19:32
搜噶,谢谢哥们啦

不用。。。。。。。。。。。。。。。
作者: 沐阳6011    时间: 2014-6-7 13:54
艮昕辶 发表于 2014-6-7 11:22
我的静态区的概念就是static method()和static int x;

明白了,嘿嘿:D
作者: 唐坚    时间: 2014-6-8 19:39
    学习了




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