随笔分类 -  Java

摘要:PriorityQueue 数据结构底层原理、源码实现可视化分析及应用实战本文将从数据结构底层原理 + 源码实现 + 应用实战三方面深入剖析 PriorityQueue,让你真正掌握优先队列的底层逻辑及其应用。 源码可视化视频:https://www.bilibili.com/video/BV12Ha5zjEcS/ 在玩游戏的时候,发现需要购买的装备很多,而且不同的英雄需 阅读全文
posted @ 2025-08-31 23:32 渊渟岳 阅读(249) 评论(0) 推荐(0)
摘要:Java 集合--快速掌握涵盖三大场景实现的Set集合底层原理掌握Map集合相当于同时掌握了Set集合。 Set集合底层实现--委派成员变量Map集合完成具体实现。 Set 集合概览 在 Java 集合框架中,Set 表示不包含重复元素的集合类型。 本文讲解三种常用实现:HashSet、LinkedHashSet 和 TreeSet。 1. Set 接口概述 阅读全文
posted @ 2025-08-18 07:45 渊渟岳 阅读(245) 评论(0) 推荐(0)
摘要:ArrayDeque双端队列--底层原理可视化主要学习双端队列 ArrayDeque ,通过对其栈功能的使用,掌握循环数组底层原理 觉得文章枯燥的可以结合ArrayDeque 底层原理可视化视频:https://www.bilibili.com/video/BV1zChGz8EVL/ 有环形的数组?同时具备栈功能和队列功能? 1. Java 中 阅读全文
posted @ 2025-08-04 08:34 渊渟岳 阅读(300) 评论(0) 推荐(1)
摘要:“子弹弹夹”装弹和出弹的抽象原理实战:掌握栈的原理与实战栈的数据结构就像是子弹弹夹一样,后装入的子弹先发出。 从概念到实战逐步掌握数据结构:通过自定义栈来彻底掌握栈数据结构,并通过自定义栈解决实际问题。 1. 栈的基本概念 1.1. 概念与属性 定义:栈(Stack)是一种“后进先出”(LIFO, Last-In First-Out)的线性数据结构,只允 阅读全文
posted @ 2025-07-28 08:29 渊渟岳 阅读(289) 评论(0) 推荐(0)
摘要:TreeMap集合--底层原理、源码阅读及它在Java集合框架中扮演什么角色?TreeMap底层原理、源码阅读及它在Java集合框架中扮演什么角色? 阅读全文
posted @ 2025-07-21 08:22 渊渟岳 阅读(348) 评论(2) 推荐(0)
摘要:HashMap居然可以和它直接合体???LinkedHashMap集合继承于HashMap,学习LinkedHashMap重点对比 LinkedHashMap 与 HashMap 的异同 特别强调两者的 Entry(节点)数据结构、数据结构的不同带来的特性差异、HashMap 的后置处理机制及最少访问删除策略。 LinkedHashMap 阅读全文
posted @ 2025-07-14 09:46 渊渟岳 阅读(427) 评论(0) 推荐(0)
摘要:HashMap集合--基本操作流程的源码可视化本文主要包含:HashMap 插入过程、扩容过程、查询过程和删除过程的源码可视化 文章对应的视频连接:https://www.bilibili.com/video/BV1wM3KzaE3d/ 1. 操作流程 1.1. 插入过程(put(K key, V value)) 插入流程主要涉及四种操作:扩容 阅读全文
posted @ 2025-07-07 08:15 渊渟岳 阅读(374) 评论(0) 推荐(0)
摘要:Java集合--HashMap底层原理可视化,秒懂扩容、链化、树化HashMap做一个全面梳理,涵盖:冲突处理(链地址法)、扩容流程、链表–红黑树(树化/链化)转换的处理。通过四次扩容,渐进式的对 HashMap 扩容及相关操作有一个基本而完整的理解。 阅读全文
posted @ 2025-06-30 09:59 渊渟岳 阅读(403) 评论(0) 推荐(0)
摘要:Java集合--从本质出发理解HashMap文章内容较长,放宽心,带着疑问慢慢读,总能找到你想要的答案。 如何快速定位数据存储在内存地址的位置? 先提出一个问题:如何快速定位数据存储在内存地址的位置? 聪明的你会想到使用数组:根据首地址+单个节点存储大小 x 数组下标,便可快速计算出目标的内存地址,从而做到时间复杂度为O(1)的查找速度。但这 阅读全文
posted @ 2025-06-23 09:34 渊渟岳 阅读(369) 评论(0) 推荐(1)
摘要:Java集合--LinkedList源码可视化集合节点保存的都是对象的引用,而非具体值,文中案例仅仅为了方便实现原理的演示。 📝1. 底层数据结构 LinkedList 基于 双向链表 实现,内部通过 Node<E> 节点相互连接: private static class Node<E> { E item; Node<E> next; No 阅读全文
posted @ 2025-06-16 09:41 渊渟岳 阅读(281) 评论(0) 推荐(0)
摘要:Java集合源码--ArrayList的可视化操作过程关于ArrayList的元素插入、检索、修改、删除、扩容等可视化操作过程 还有关于ArrayList的迭代器、线程安全和时间复杂度 📝1. 底层数据结构 基于动态数组实现,内部维护一个Object[]数组。本质是数组数据结构,底层通过拷贝扩容使得数组具备了动态增大的特性。 数组所具备的一些特性,A 阅读全文
posted @ 2025-06-09 07:59 渊渟岳 阅读(504) 评论(0) 推荐(0)
摘要:为了掌握设计模式,开发了一款Markdown 文本编辑器软件(已开源)设计模式实战项目:Markdown 文本编辑器软件开发(已开源) 📌一、项目简介 项目名称:YtyMark-java 本项目是一款基于 Java 语言 和 JavaFX 图形界面框架 开发的 Markdown 文本编辑器。项目不仅具备 Markdown 文本编写、预览、保存、导出等功能,还特别关注 阅读全文
posted @ 2025-04-18 07:42 渊渟岳 阅读(432) 评论(2) 推荐(2)
摘要:掌握设计模式--组合模式组合模式(Composite Pattern) 组合模式(Composite Pattern)是一种结构型设计模式,它用于将对象组织成树形结构,以表示部分-整体的层次结构。通过组合模式,客户端可以统一对待单个对象和组合对象,从而简化了客户端代码的复杂性。 组合模式的核心思想 统一的接口:通过抽象类或 阅读全文
posted @ 2025-01-03 16:39 渊渟岳 阅读(573) 评论(0) 推荐(1)
摘要:掌握设计模式--装饰模式装饰模式(Decorator Pattern) 装饰模式是一种结构型设计模式,旨在在不改变原有对象结构的情况下动态地为对象添加功能。通过将对象封装到一系列装饰器类中,可以以灵活和透明的方式扩展功能。 如果要扩展功能,装饰模式提供了比继承更有弹性的替代方案,装饰模式强调的是功能的扩展和灵活组合。 装饰 阅读全文
posted @ 2024-12-26 22:31 渊渟岳 阅读(605) 评论(0) 推荐(0)
摘要:掌握设计模式之工厂方法模式工厂方法模式 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的具体类。工厂方法模式将对象的创建委托给子类,从而实现了类的实例化延迟和高内聚低耦合的目标。 工厂方法模式的结构 工厂方法模式通常包含以下几个角色: P 阅读全文
posted @ 2024-12-06 21:21 渊渟岳 阅读(1304) 评论(0) 推荐(1)
摘要:掌握设计模式之简单工厂模式简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它定义了一个工厂类,该类可以根据传入的参数决定创建哪种产品类的实例。简单工厂模式将对象的创建逻辑封装在一个工厂类中,客户端只需要通过工厂类获取实例,而不需要直接涉及实例化的细节。 简单工厂模式包含三个主要 阅读全文
posted @ 2024-12-04 21:32 渊渟岳 阅读(767) 评论(0) 推荐(0)
摘要:掌握设计模式之生成器模式本文的主要内容有: 生成器模式(Builder Pattern) 意图 将复杂对象的构造与其表示分开,使得相同的构造过程可以创建不同的表示。 适用性 适用于需要创建复杂对象,对象的构建过程比较灵活,可以通过多个步骤逐步完成。 案例一:参数传递方式 案例概述 使用多个零部件组装成一台的手机,不同型号或 阅读全文
posted @ 2024-12-02 22:04 渊渟岳 阅读(435) 评论(0) 推荐(0)
摘要:设计模式--原型模式及其编程思想原型模式(Prototype Pattern) 原型模式的核心思想是通过复制(克隆)现有对象来创建新对象。 原型模式通常涉及两个角色:原型对象和具体原型对象。原型对象是需要被复制的对象,而具体原型对象是实现了克隆方法的原型对象。 在Java中,原型模式通常通过实现Cloneable接口和重写clon 阅读全文
posted @ 2024-11-27 22:48 渊渟岳 阅读(600) 评论(0) 推荐(0)
摘要:秒懂Java为什么只有值传递在Java语言中,数据类型分为基本数据类型和引用数据类型。 基本数据类型(如int、double、char等)的值直接保存在栈上。这些类型的变量在栈内存中有固定的大小,并且值是直接存储在这些变量中的,数据的传递为值传递,这个好理解。以下以引用数据类型来讲解。 引用和实例化对象 比如new一个对象的代 阅读全文
posted @ 2024-11-26 21:36 渊渟岳 阅读(1007) 评论(7) 推荐(0)
摘要:AOP使用场景的本质是:在一个`方法`的执行前、执行后、执行异常和执行完成状态下,都可以做一些`统一的操作`。AOP 的核心优势在于将这些横切功能从核心业务逻辑中提取出来,从而实现代码的`解耦`和`复用`,提升系统的`可维护性`和`扩展性`。 阅读全文
posted @ 2024-11-17 21:52 渊渟岳 阅读(773) 评论(0) 推荐(1)