自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 数据结构和算法之【阻塞队列】下篇

本文介绍了两种基于链表实现的阻塞队列优化方案:单锁实现和双锁实现。单锁实现使用一把锁控制入队和出队操作,虽然实现简单但存在性能瓶颈。双锁实现则通过分离入队锁和出队锁,使两个操作互不干扰,显著提升并发性能。文章详细展示了两种实现的核心代码,包括队列接口定义、抽象类设计以及具体实现类。双锁方案通过条件变量实现线程间协调,并在临界条件下进行"极联唤醒"优化,进一步减少不必要的线程唤醒开销。两种实现都支持带超时等待的操作,增强了队列的实用性。

2026-04-02 20:44:59 1180

原创 数据结构和算法之【阻塞队列】上篇

本文探讨了阻塞队列的实现及其在多线程环境中的应用。首先通过测试案例展示了普通队列(LinkedList)在多线程操作时存在的线程安全问题,表现为元素数量不一致。接着介绍了阻塞队列的特性,包括队列空时等待获取元素、队列满时等待添加元素的功能。文章详细实现了一个基于单锁的阻塞队列(OneLockListBlockingQueue),使用ReentrantLock和Condition实现线程安全,并通过测试验证了其线程安全性。最后展示了如何使用该阻塞队列实现生产者-消费者模型,演示了不同速度的生产者和消费者之间的

2026-03-30 23:57:19 880

原创 数据结构和算法之【堆】

摘要:本文详细介绍了堆数据结构及其实现,包括大顶堆和小顶堆的定义与特性,以及父子节点位置关系的计算方法。通过Java代码实现了堆的抽象类和具体类,重点解析了堆化(heapIfy)、下潜(siftDown)和上浮(siftUp)等核心操作。文章还展示了堆在优先级队列、堆排序和求第K大元素等实际场景中的应用,提供了完整的代码实现和LeetCode题解。堆作为一种高效的数据结构,在算法和工程实践中具有重要价值。

2026-03-25 23:40:53 1870

原创 数据结构和算法之【二叉树】

本文介绍了二叉树的基本概念和遍历方法。主要内容包括:1.二叉树的定义,区分根节点和叶子节点;2.两种遍历方式:广度优先(层序遍历)和深度优先(前序、中序、后序);3.LeetCode相关题解,分别使用栈和递归实现三种深度优先遍历;4.通用模板实现,包含节点类定义、结果封装类和遍历工具类。通过代码示例展示了如何高效实现二叉树的遍历操作,并提供了完整的解决方案和测试结果。

2026-03-23 23:43:31 633

原创 数据结构和算法之【栈】

本文介绍了栈的定义及两种实现方式(链表和数组),并给出了LeetCode相关题解。栈是一种遵循先进后出原则的线性数据结构,支持压栈和弹栈操作。文章详细展示了基于链表的实现(使用虚拟头节点)和基于数组的实现(从尾部操作元素)。随后提供了LeetCode 102题(有效括号)、232题(用栈实现队列)和225题(用队列实现栈)的解决方案,包括测试结果验证。这些实现和题解展示了栈的基本操作及其在算法问题中的应用。

2026-03-21 23:29:50 933

原创 数据结构和算法之【队列】

本文介绍了队列的数据结构及其实现方式。队列遵循先进先出原则,包含入队(offer)和出队(poll)操作。文章详细展示了基于链表和数组的自定义队列实现,分别采用双向链表和动态扩容数组作为底层结构。同时分析了Java标准库中的队列实现:LinkedList基于双向链表实现队列/双端队列功能,LinkedBlockingQueue则是线程安全的阻塞队列实现。最后通过LeetCode第102题(层序遍历)和第103题(之字形遍历)展示了队列在算法中的应用,分别使用普通队列和双端队列解决问题,并给出了具体的代码实现

2026-03-19 22:53:46 624

原创 数据结构和算法之【递归】

本文主要讲解了解决问题的一种方案-递归

2026-03-16 23:32:07 797 2

原创 数据结构和算法之【链表】

本文主要介绍链表的实现和它的特点

2026-03-14 21:15:39 928

原创 数据结构和算法之【数组】

本文主要介绍了数组的特点和动态数组的实现

2026-03-12 22:41:37 441

原创 数据结构和算法之【二分查找】

本文详细介绍了二分查找算法,并结合LeetCode相关习题进行讲解

2026-03-10 18:53:19 895

原创 并发编程之【synchronized】

介绍Java中的synchronized

2026-02-10 23:34:36 1215 1

原创 并发编程之【优雅地结束线程的执行】

优雅地结束线程的生命周期

2026-02-07 22:48:24 463

原创 并发编程之【Java中的Thread类】

介绍Java中的Thread线程类

2026-02-04 23:40:17 1543

原创 Java基础之【多线程】

认识Java中的多线程

2026-02-02 22:19:10 813

原创 Java基础之【排序算法】

介绍几种常见的排序算法

2026-01-15 23:54:00 368 2

原创 Java基础之【IO流】

介绍Java中的IO流

2026-01-14 14:09:11 942

原创 Java基础之【反射】

对Java中的反射进行详细介绍

2026-01-05 01:23:59 490

原创 Spring之【详解AOP】

Spring AOP详解

2025-08-10 20:27:10 1457

原创 Spring之【Import】

介绍Spring中通过Import将Bean放入容器中

2025-08-08 23:47:35 346

原创 Spring之【初识AOP】

初始Spring中AOP功能

2025-08-06 23:41:02 1428

原创 Spring之【详解FactoryBean】

介绍Spring中的FactoryBean

2025-08-05 23:53:15 638

原创 Spring之【Bean的实例化方式】

介绍Spring中几种实例化Bean的方式

2025-08-04 23:52:42 1247

原创 Spring之【循环引用】

介绍Spring中的循环引用

2025-08-01 23:14:56 2106 1

原创 Spring之【Bean的生命周期】

介绍Spring Bean的生命周期

2025-07-27 21:13:20 2134

原创 Spring之【Bean后置处理器】

介绍Spring中的BeanPostProcessor

2025-07-25 23:34:30 973

原创 Spring之【ConfigurationClassPostProcessor】

介绍Spring中的一个重要组件ConfigurationClassPostProcessor

2025-07-24 15:37:34 1121

原创 Spring之【Bean工厂后置处理器】

介绍Spring中的Bean工厂后置处理器

2025-07-22 23:55:24 685

原创 Spring之【AnnotatedBeanDefinitionReader】

Spring框架生成BeanDefinition的简单介绍

2025-07-19 23:56:27 1777

原创 Spring之【BeanDefinition】

介绍Bean定义信息

2025-07-17 23:58:31 517

原创 Spring之【写一个简单的IOC容器EasySpring】

写一个简单的IOC容器

2025-07-12 22:04:50 2331

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除