黑马程序员技术交流社区

标题: 内存一般分为哪几个逻辑区域,各自有什么不同? [打印本页]

作者: 曹华    时间: 2013-12-25 11:23
标题: 内存一般分为哪几个逻辑区域,各自有什么不同?
本帖最后由 曹华 于 2013-12-27 18:08 编辑


我还想知道程序中的变量、代码、数据存放的相应区域?
一共好像有两个概念,我弄的不是很明白。



作者: 上帝的尊严    时间: 2013-12-25 12:03
我就知道两个,一个栈,一个堆,当对变量是值类型的存在栈上,变量时引用类型是存在堆上,地址存在栈上
作者: 776699    时间: 2013-12-25 17:58
在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所有线程共享,而虚拟机栈和本地方法栈还有程序计数器对于线程隔离的。每个区域都有各自的创建和销毁时间。
作者: 曹华    时间: 2013-12-26 11:07
776699 发表于 2013-12-25 17:58
在Java内存分配中,java将内存分为:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆对于所 ...

明白一些,但还不理解。
作者: No_why    时间: 2013-12-26 12:51
值类型和引用类型   值类型存在在栈中  引用类型存储在堆中  栈中存他在堆中的地址
作者: Sayme    时间: 2013-12-26 22:40
堆 存储引用类型
栈 存储值类型
静态空间 存储静态变量
作者: 红鹰(Jake)    时间: 2013-12-27 09:52
主内存区:存放当前运行的线程、全局变量
各线程都有各自的线程区,存放各自的信息
对于类,则不占用内存,是存放在外存中(磁盘)中
值类型:存放的信息,和地址一个内存空间
应用类型:存放的信息,和地址不在一个内存空间。
作者: 如远行客    时间: 2013-12-27 10:06
栈:存储值类型数据和引用类型对象的地址
堆:分为托管堆和静态区,托管堆中存放一般的引用类型对象,系统的垃圾回收器会不定时的清理这片空间,而静态区存放的是静态成员,这片空间在程序运行时最先创建,最后销毁,并且,垃圾回收器在程序运行中不会清理这片空间,直至程序结束。
作者: 曹华    时间: 2013-12-27 11:19
如远行客 发表于 2013-12-27 10:06
栈:存储值类型数据和引用类型对象的地址
堆:分为托管堆和静态区,托管堆中存放一般的引用类型对象,系统 ...

有点意思




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