Java知识速记:栈和堆

news/2025/2/3 14:38:46 标签: java, 开发语言

Java知识速记:栈和堆

一、什么是栈,什么是堆

栈是一种后进先出(LIFO)的数据结构,用于存储方法调用的本地变量和基本数据类型。在JVM中,每当一个方法被调用时,JVM会为该方法分配一个栈帧,栈帧包含了方法的局部变量、操作数栈和方法的返回地址。

堆是用于存储Java对象和数组的内存区域。所有对象的数据存储在堆中,JVM在运行时对堆进行动态分配与管理。与栈不同,堆的生命周期由Java的垃圾回收器(Garbage Collector)管理,负责释放不再使用的对象内存。

二、内存大小的确定

特性
内存大小确定时间JVM启动时确定,通常固定(也可以说是编译时确定)运行时动态调整,初始和最大大小可配置

三、内存的管理与释放

特性
内存管理简单,随方法调用结束自动释放复杂,依赖垃圾回收机制
释放方式LIFO原则,当方法结束时释放定期扫描并释放不再引用的对象

四、数据结构的实现方式

特性
数据结构简单,使用数组或链表实现相对复杂,通常使用树形结构
操作方式压栈(push)和弹栈(pop)动态分配与释放,管理对象引用与内存碎片

五、分配速度

特性
分配速度非常快,仅需调整栈顶指针较慢,涉及复杂的内存管理与垃圾回收

六、线程方面的特点

特性
线程管理线程私有,每个线程有独立栈线程共享,所有线程访问同一堆内存
数据共享数据不会在线程间共享可能导致线程安全问题,需要同步措施

http://www.niftyadmin.cn/n/5840875.html

相关文章

vue入门到实战 三

目录 3.1 v-bind 3.1.1 v-bind指令用法 ​编辑3.1.2 使用v-bind绑定class 3.1.3 使用v-bind绑定style 3.2.1 v-if指令 3.2.1 v-if指令 3.2.2 v-show指令 ​3.3 列表渲染指令v-for 3.3.1 基本用法 3.3.2 数组更新 3.3.3 过滤与排序 3.4 事件处理 3.4.1 使用v-on指令…

android java系统弹窗的基础模板

1、资源文件 app\src\main\res\layout下增加custom_pop_layout.xml 定义弹窗的控件资源。 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/…

redis集群理论详解

一. Redis集群发展历程 本片文章只介绍集群理论知识&#xff0c;不包含Redis集群搭建教程 教程文章请点击docker搭建redis集群&#xff08;三主三从&#xff09; 阶段一&#xff1a;单机版Redis 优点&#xff1a; 简单&#xff1a;易于部署和使用&#xff0c;适合小型项目或初期…

MacBook Pro(M1芯片)Qt环境配置

MacBook Pro&#xff08;M1芯片&#xff09;Qt环境配置 1、准备 试图写一个跨平台的桌面应用&#xff0c;此时想到了使用Qt&#xff0c;于是开始了搭建开发环境&#xff5e; 在M1芯片的电脑上安装&#xff0c;使用brew工具比较方便 Apple Silicon&#xff08;ARM/M1&#xf…

《苍穹外卖》项目学习记录-Day11订单统计

根据起始时间和结束时间&#xff0c;先把begin放入集合中用while循环当begin不等于end的时候&#xff0c;让begin加一天&#xff0c;这样就把这个区间内的时间放到List集合。 查询每天的订单总数也就是查询的时间段是大于当天的开始时间&#xff08;0点0分0秒&#xff09;小于…

从零开始:用Qt开发一个功能强大的文本编辑器——WPS项目全解析

文章目录 引言项目功能介绍1. **文件操作**2. **文本编辑功能**3. **撤销与重做**4. **剪切、复制与粘贴**5. **文本查找与替换**6. **打印功能**7. **打印预览**8. **设置字体颜色**9. **设置字号**10. **设置字体**11. **左对齐**12. **右对齐**13. **居中对齐**14. **两侧对…

IELTS口语练习题库

IELTS口语1-4月题库 Part 1 Gifts Have you ever sent handmade gifts to others? Yes, I have. I once made a scrapbook for my best friend’s birthday. It included photos of our memories together and some handwritten notes. She loved it because it was personal…

Swoole如何实现多进程

Swoole 是一个高性能的 PHP 扩展&#xff0c;它提供了多进程模型来解决传统 PHP 环境中的并发处理问题。以下是 Swoole 实现多进程的具体方式和原理&#xff1a; 一、多进程模型的实现 进程创建与管理&#xff1a; Swoole 提供了 Swoole\Process 类&#xff08;或在旧版本中使…