Java堆、栈和队列

简介: Java堆、栈和队列

栈:后进先出,即最后被压入(push)栈的元素会被第一个弹出来(pop) 不考虑排序

堆栈—》数组讲解

数组数据结构分析

数组字实际开发中越来越被集合取代了。

现在一些算法和数据结构还在用数组外,集合被广泛的使用

数组的长度是固定的

这里的= 是把数组对象内存地址赋予给arr变量


栈内存特点:存储的都是局部变量,变量一旦出了自己的作用域就会马上消失,释放内存


然后用new出来的对象,jvm都会在堆内存中开辟一个新的空间,创建新对象


堆内存特点:

堆内存存的都是对象数据,对象一旦使用完,不会马上从内存中消失,

而是要等到垃圾回收器如GC不定时把垃圾对象回收,这个时候才会释放出内存。


垃圾对象:没有变量引用了。


堆分为最大堆、最小堆,在最大堆中根节点的值最大,在最小堆中根节点的值最小。有很多需要用解决最大小值的问题可以用堆来解决。


算法用的更多的是二维数组


int [][] a = new int [3][4];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j] = ++ value;
}
}


队列:先进先出,即第一个进入队列的元素将会第一个出来 考虑排序

实现队列也有两种方式,一种是链表, 另一种是循环数组

队列和栈在实现上的不同


栈遵循后进先出的原则,所以要在数组或链表同一端做添加和删除操作

队列遵循先进先出的原则, 所以要在数组或链表的两端分别做插入和删除的操作


相关文章
|
5月前
|
前端开发 Java
java实现队列数据结构代码详解
本文详细解析了Java中队列数据结构的实现,包括队列的基本概念、应用场景及代码实现。队列是一种遵循“先进先出”原则的线性结构,支持在队尾插入和队头删除操作。文章介绍了顺序队列与链式队列,并重点分析了循环队列的实现方式以解决溢出问题。通过具体代码示例(如`enqueue`入队和`dequeue`出队),展示了队列的操作逻辑,帮助读者深入理解其工作机制。
163 1
|
7月前
|
存储 IDE Java
java设置栈内存大小
在Java应用中合理设置栈内存大小是确保程序稳定性和性能的重要措施。通过JVM参数 `-Xss`,可以灵活调整栈内存大小,以适应不同的应用场景。本文介绍了设置栈内存大小的方法、应用场景和注意事项,希望能帮助开发者更好地管理Java应用的内存资源。
368 4
|
8月前
|
监控 Java 中间件
8G的容器Java堆才4G怎么就OOM了?
本文记录最近一例Java应用OOM问题的排查过程,希望可以给遇到类似问题的同学提供参考。
|
8月前
|
存储 监控 Java
JAVA线程池有哪些队列? 以及它们的适用场景案例
不同的线程池队列有着各自的特点和适用场景,在实际使用线程池时,需要根据具体的业务需求、系统资源状况以及对任务执行顺序、响应时间等方面的要求,合理选择相应的队列来构建线程池,以实现高效的任务处理。
345 12
|
9月前
|
存储 算法 Java
Java 内存管理与优化:掌控堆与栈,雕琢高效代码
Java内存管理与优化是提升程序性能的关键。掌握堆与栈的运作机制,学习如何有效管理内存资源,雕琢出更加高效的代码,是每个Java开发者必备的技能。
231 5
|
10月前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
197 4
Java对象一定分配在堆上吗?
|
10月前
|
存储 算法 Java
🧠Java零基础 - Java栈(Stack)详解
【10月更文挑战第17天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
374 2
|
11月前
|
存储 算法 Java
🏗️Java零基础:深入了解Java 堆
【10月更文挑战第2天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
125 3
|
11月前
|
存储 算法 Java
【用Java学习数据结构系列】用堆实现优先级队列
【用Java学习数据结构系列】用堆实现优先级队列
149 0
|
11月前
|
存储 安全 Java
【用Java学习数据结构系列】探索栈和队列的无尽秘密
【用Java学习数据结构系列】探索栈和队列的无尽秘密
99 2