- 博客(8)
- 收藏
- 关注
原创 AQS中的同步器CyclicBarrier
在Java并发编程中,CyclicBarrier是一个比CountDownLatch更强大的同步工具类。它可以理解为一个“循环栅栏”,允许多个线程相互等待,直到所有线程都到达屏障点后再继续执行。
2025-03-23 21:04:14
410
原创 AQS中的同步器CountDownLatch
在Java并发编程中,CountDownLatch是一个简单易用但又功能强大的同步工具类。它可以理解为一个“倒计时门闩”,允许一个或多个线程等待其他线程完成操作后再继续执行。
2025-03-22 18:38:34
836
原创 AQS中的同步器Semophore
在多线程编程中,协调线程对共享资源的访问至关重要。当多个线程争抢有限的资源时,如果没有合理的控制机制,就可能导致资源耗尽、系统崩溃等问题。而Semaphore(信号量)正是为了解决这类问题而生的并发工具。Semaphore可以理解为一种计数器,它控制着同时访问某一资源的线程数量。通过acquire()和release()操作,线程可以获取或释放许可证,从而实现对资源访问的精细控制。
2025-03-22 15:48:23
669
2
原创 Java内存模型(JMM):揭开多线程编程的神秘面纱
在Java的世界里,多线程编程是提升程序性能的利器,但也带来了复杂的内存可见性和线程安全问题。为了理解并解决这些问题,我们需要深入Java内存模型(Java Memory Model, JMM)的底层机制。Java内存模型定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式,它规定了线程如何与内存交互,以及如何保证多线程环境下的数据一致性。理解JMM是编写正确、高效并发程序的关键。
2025-03-18 21:10:01
1018
原创 HashMap源码分析_扩容机制_红黑树
在Java集合框架中,HashMap以其高效的查找速度而闻名,是使用频率最高的数据结构之一。它巧妙地结合了数组和链表(或红黑树)的优势,通过哈希函数将键值对映射到数组的索引位置,从而实现快速的数据存取。然而,HashMap的魔力远不止于此。为了充分发挥其性能优势,并避免潜在的性能瓶颈,深入理解其内部实现机制至关重要。
2025-03-17 22:28:20
1146
原创 LinkedList源码分析
在Java集合框架中,LinkedList作为List接口的另一个重要实现,与ArrayList的数组结构不同,它采用了双向链表的数据结构。这种结构赋予了LinkedList独特的特性,例如高效的插入删除操作,但也带来了随机访问效率较低的代价。
2025-03-16 23:07:01
8043
原创 ArrayList源码分析(JDK1.8)
ArrayList,作为Java集合框架中最常用的类之一,以其动态数组的实现方式,为我们提供了便捷的元素存储和操作功能。无论是初学Java的新手,还是经验丰富的开发者,ArrayList都是绕不开的话题。然而,仅仅停留在API的使用层面,并不能让我们真正理解ArrayList的精髓。为了更高效地使用它,并避免潜在的坑,深入其源码,探究其内部实现机制,就显得尤为重要。
2025-03-16 00:58:06
809
原创 开发中常用的Java Stream流
本文旨在介绍 Java Stream API 的基本概念及其强大之处,同时探讨如何利用这一特性来编写更加简洁、高效的代码。我们将从 Stream API 的基本原理讲起,逐步深入到实际应用中的高级技巧,包括如何创建 Stream、中间操作与终结操作的区别,以及并行流的使用等。本文包含了个人实际开发中所常用的api,无论你是 Java 初学者还是有经验的开发者,都将在本文中找到有价值的内容,帮助你在日常开发中更好地利用 Stream API。
2024-08-16 12:18:57
1148
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人