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

堆内存

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

特点:

  1. 先进先出,后进后出

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

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

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

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

栈内存

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

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

特点:

  1. 先进后出,后进先出

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

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

  4. 栈内存是线程私有的

相关推荐
Grey Zeng5 分钟前
Java SE 25新增特性
java·jdk·jdk新特性·jdk25
雨白1 小时前
Java 线程通信基础:interrupt、wait 和 notifyAll 详解
android·java
架构师沉默6 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
Java中文社群7 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试
每天进步一点_JL8 小时前
JVM 类加载:双亲委派机制
java·后端
用户298698530148 小时前
Java HTML 转 Word 完整指南
java·后端
渣哥9 小时前
原来公平锁和非公平锁差别这么大
java
渣哥9 小时前
99% 的人没搞懂:Semaphore 到底是干啥的?
java
J2K9 小时前
JDK都25了,你还没用过ZGC?那真得补补课了
java·jvm·后端
kfyty7259 小时前
不依赖第三方,不销毁重建,loveqq 框架如何原生实现动态线程池?
java·架构