美文网首页Java
【Java高级】堆栈内存和存储方式

【Java高级】堆栈内存和存储方式

作者: 大栗几 | 来源:发表于2020-05-23 15:07 被阅读0次

本文为原创文章,转载请注明出处
查看[Java]系列内容请点击:https://www.jianshu.com/nb/45938443

什么是堆内存?

简单来说,堆内存就是一个自由的内存区,对于这块内存区,程序具有相当自由的操作权限,可以自己申请使用。

什么是栈内存?

与堆内存相比,程序对于栈内存的使用就没有那么自由,我们在学习C语言的时候都知道,C语言在调用一个函数的时候,需要将当前函数的运行环境数据压入栈中进行存储,当从被调用的函数返回的时候,就从这个栈中弹出原来压入的数据,恢复运行环境,从而继续执行当前函数。

以此类推,栈内存就是用来存储程序中的临时变量、基本类型等数据的内存区间,这些数据属于程序本身的部分,不属于程序额外申请的内存。这部分内存的分配也由运行环境自动分配。

Java中的数据存在哪里?

一个比较简单的区分:

  • 对象和数组等都存储在堆内存中,因为这部分内存空间是动态获取的。
  • 基本数据类型、方法中参数的基本数据类型数据等都存储在栈内存中,属于程序自身的部分。

栈内存大小在Java虚拟机加载程序的时候就已经知道了,而堆内存大小需要等到运行到相应的程序的时候才能知道。

相关文章

  • 【Java高级】堆栈内存和存储方式

    本文为原创文章,转载请注明出处查看[Java]系列内容请点击:https://www.jianshu.com/nb...

  • JAVA内存模型-深入理解CPU-STACK内存走向

    JAVA 内存模型-堆和栈: 堆栈存储结构 堆 存放运行时创建的对象、数组。为JVM的主内存,为所有线程共享。 栈...

  • Java基础之内存模型

    Java基础之内存模型 目录 Java内存模型简单介绍 JVM介绍 存储方式 并发原因 Java内存模型与系统内存...

  • 2. Java内存模型

    Java内存模型指定了JVM和计算机内存是如何进行协作 Java内存模型的原理 Java内存被分为线程栈和堆栈:J...

  • java基础之变量与内存(1)

    该章节讨论java变量,主要分为基本(数据)类型和引用类型,以及变量在内存堆栈中的存储。 基本类型: 布尔型:bo...

  • 堆栈

    堆栈设计图 堆栈优点 临时存储大量的数据,便于查找 push内存指令 POP指令

  • Java对象

    本文以HotSpot虚拟机为例,介绍Java对象在虚拟机中存储和使用方式。 对象的内存布局 对象在内存中存储布局可...

  • Java中的内存存储

    在Java中,值类型是存储在内存中的堆栈中(以后简称为栈),而引用类型的变量在栈中仅仅是存储引用类型的地址,...

  • 内存中堆栈使用,函数调用示例

    堆栈是什么: 堆栈是内存的一种先进后出的存储方式,具有由高地址向低地址生长的特质。(像是以空气为地基,往地底建房...

  • 内存中的堆栈和数据结构堆栈区别

    内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构...

网友评论

    本文标题:【Java高级】堆栈内存和存储方式

    本文链接:https://www.haomeiwen.com/subject/fbzkahtx.html