java数据存储:1:寄存器2:本地方法区3:方法区 4:栈 5:堆

堆内存

堆内存 是java内存中的一种,它的作用是用于存储java中的对象和数组,当我们new一个对象(对象的成员变量)或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。

特点:

  1. 先进先出,后进后出

  2. 堆可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,但缺点是,由于要在运行时动态分配内存,存取速度较慢。

  3. new对象在堆中如何分配?

由Java虚拟机的自动垃圾回收器来管理。

  1. 堆内存是所有线程共有的

栈内存

栈内存是Java的另一种内存,主要是用来执行程序用的。

栈内存用来存放方法 或者局部变量

特点:

  1. 先进后出,后进先出

  2. 存取速度比堆要快,仅次于寄存器,栈数据可以共享,但缺点是,存在栈中的数据大小与生存必须是确定的,缺乏灵活性

  3. 栈内存可以称为一级缓存,由垃圾回收器自动回收

  4. 栈内存是线程私有的

相关推荐
尘浮72825 分钟前
60天python训练计划----day45
开发语言·python
Magnum Lehar29 分钟前
vulkan游戏引擎test_manager实现
java·算法·游戏引擎
sss191s30 分钟前
校招 java 面试基础题目及解析
java·开发语言·面试
异常君33 分钟前
MySQL 中 count(*)、count(1)、count(字段)性能对比:一次彻底搞清楚
java·mysql·面试
sduwcgg1 小时前
python的numpy的MKL加速
开发语言·python·numpy
wkj0011 小时前
QuaggaJS 配置参数详解
java·linux·服务器·javascript·quaggajs
钢铁男儿1 小时前
Python 接口:从协议到抽象基 类(定义并使用一个抽象基类)
开发语言·python
暴力求解1 小时前
C++类和对象(上)
开发语言·c++·算法
让我们一起加油好吗2 小时前
【基础算法】枚举(普通枚举、二进制枚举)
开发语言·c++·算法·二进制·枚举·位运算
大锦终2 小时前
【C++】特殊类设计
开发语言·c++