java的栈区 堆区存放什么_简单整理java中的栈内存, 堆内存是什么?

news/2024/11/22 20:28:42/

上一篇文章简单整理了栈(stack), 堆(heap), 队列(queue)的结构

这一篇继续整理java中的 占内存,堆内存。

Java把内存划分成两种:一种是栈内存,一种是堆内存。

这里需要解释一下, 这里的堆内存是跟数据结构的堆是完全两码事。

一、栈内存

存放基本类型的变量,以及对象的引用值和函数主体,遵循先入后出的原则。

栈内存在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。

当在一段代码块定义一个变量时:

Java在栈中为变量分配内存空间,当超过变量的作用在域后,

Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

Java中的代码是在函数体中执行的,每个函数主体都会被放在栈内存中,

举例子有一个main()函数。

main()函数里调用了save()函数,那么栈低存储的是main()函数其上面是save()函数。

等save()函数执行后,先销毁save()函数,再销毁main()函数。

栈的优势是,栈内存与堆内存相比是非常小的,存取速度比堆要快,栈数据可以共享。

但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。

二、堆内存

给我的感觉是所有的引用类型的值是存在堆内存中,地址(指针)是存在栈内存中。

堆内存是区别于栈区、全局数据区和代码区的另一个内存区域。

堆内存在程序运行中,可以动态的调整申请大小。

堆内存的分配过程

当接收到程序的内存申请时:

1. 先游遍


http://www.ppmy.cn/news/706910.html

相关文章

计算机存储容量的基本单位pb,pb存储单位是什么

pb存储单位是一种计算机存储单位,pb的英文全称是Petabytes,其中文名叫拍字节;计算机存储单位一般用字节Byte、千字节KB、兆字节MB、吉字节GB、太字节TB、拍字节PB、艾字节EB等表示。 本文操作环境:Windows7系统,Dell G…

计算机中存储器的最小单位是什么意思,计算机内存储器的最小存储单位是什么...

计算机存储信息的最小单位,称之为位(bit,又称比特) 存储器中所包含存储单元的数量称为存储容量,其计量基本单位是字节(Byte。简称B),8个二进制位称为1个字节,此外还有KB、MB、GB、TB等,它们之间的换算关系是…

到底什么是存储?

大家好,我是新爷。 在这里我一直都在阐述着关于生信方面,数据方面的一些文章~ 那今天我给大家说说到底什么是存储。 简单的来说,存储就是用来存数据的,有下机数据,有中间结果数据,有最终结果数据。但很多…

什么是内存

在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储…

std::shared_ptr 用法

描述: std::shared_ptr是c标准库中的一个模板类,它提供了自动化的内存管理,通过共享引用计数的方式来管理动态分配的对象。这意味着多个std::shared_ptr可以共享同一个对象,并在不再需要时自动释放它。 构造: …

day3 QT对话框

目录 QDialog 标准对话框(Standard Dialogs): 内置对话框(Built-in Dialogs): 自定义对话框(Custom Dialogs) 示例 myqdialog.h widget.h myqdialog.cpp widget.cpp QDialog Q…

全景影像技术研发公司Insta 360获数亿元级C+轮融资,计划A股上市...

3月20日消息,全景影像技术研发公司Insta360获得数亿元级C轮融资,本轮投资方包括麦高控股、华金资本、朗玛峰创投等。本轮资金将用于产品研发,市场营销与渠道拓展,提升品牌影响力。 此前,Insta360曾在2016年3月获得迅雷…