自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】进程的环境变量:从命令行到代码层,详解环境变量的本质

在Linux系统的广阔天地中,环境变量如同无形的神经网络,默默构建着程序运行的生态基础。它们以全局属性的特质贯穿整个进程体系,通过精妙的继承机制将配置信息从父进程传递到子进程,形成一张覆盖所有应用的环境网络。理解环境变量的工作原理,就如同掌握了一把开启系统运行机制的钥匙,让我们能够深入探索命令行背后的奥秘,解密程序执行的环境依赖,从而真正驾驭操作系统的核心力量。

2025-11-24 23:36:18 276

原创 2025 Java技术前瞻:JDK革新与生态融合,开启企业级开发新纪元

2025年Java技术前瞻:JDK革新与生态融合 摘要:2025年Java技术迎来重大革新,JDK持续进化推动企业级开发进入新阶段。JDK24引入结构化并发简化多线程编程,JVM性能优化实现1毫秒内垃圾回收停顿。GraalVM AOT编译显著提升启动速度,解决容器化环境痛点。生态系统方面,Spring AI 1.0为开发者提供统一AI集成方案,Java+云原生组合构建弹性基础设施。Java在保持稳定性的同时,通过持续创新在AI、云原生等前沿领域保持领先地位,继续作为企业级开发的首选平台。

2025-11-24 23:36:07 56

原创 【C++】map/set 与 unordered_map/set 的核心区别与选型

本文深度解析了C++中`map/set`与`unordered_map/unordered_set`这两类关联容器的核心区别。

2025-11-23 12:01:59 430 5

原创 网易CodeWave 智能生成应用:快速构建个人待办清单,从琐事到有序原来如此简单!

网易CodeWave推出的"智能生成应用"功能,可通过自然语言描述直接生成应用,并一键导入可视化开发环境进行可视化精细调整,大幅缩短应用创建周期。带着强烈的好奇心,我对这一功能进行了多方位实测,接下来将从功能解析、操作流程、使用技巧、体验总结四个维度,为大家带来详细分享。

2025-11-21 19:47:26 1132 24

原创 【Linux】进程优先级调整:top 和 renice

本文深入解析了 Linux 进程优先级的核心原理。

2025-11-21 10:00:00 1552 16

原创 【C++】解决哈希冲突的核心方法:开放定址法 & 链地址法

本文围绕哈希冲突的解决,详细介绍了开放定址法和链地址法两种核心方案,包括各自的命名空间设计、哈希函数(含字符串 BKDR 算法)、节点与哈希表结构定义,以及 find、insert、erase 等关键操作的实现逻辑,还涉及负载因子阈值触发的扩容与重哈希机制。

2025-11-21 09:45:00 827 17

原创 【Linux】进程状态全解析:从 R/S/D/T 到僵尸 / 孤儿进程

Linux进程状态是进程在其生命周期中所处的不同状况,主要包括运行(R)、睡眠(S)、磁盘休眠(D)、停止(T)、僵尸(Z)和死亡(X)。这些状态反映了进程是正在执行、等待资源还是已经终止。其中,僵尸状态是一个关键概念,指子进程已退出但其退出信息未被父进程回收,导致其进程控制块无法释放,从而占用系统资源。若父进程先退出,子进程则会成为“孤儿进程”,并由1号init进程接管,以确保其最终能被正确回收,避免资源泄漏。

2025-11-20 09:30:00 1616 108

原创 【C++】哈希表基础:开放定址法 & 什么是哈希冲突?

哈希通过哈希函数建立关键字与存储位置的映射以实现快速查找,包含标准库实现与直接定址法等形式,且使用哈希函数时会出现哈希冲突。

2025-11-20 09:15:55 906 39

原创 【C++】 STL 详解(十一)之 一棵红黑树模拟map/set

本文系统性地介绍了基于红黑树的关联容器实现过程,详细阐述了红黑树节点结构、迭代器设计、平衡调整算法等核心组件的开发,重点分析了map和set容器的封装技术及关键问题的解决方案。

2025-11-19 09:59:13 1147 13

原创 【C++】红黑树为什么比AVL快?用C++亲手实现告诉你答案

红黑树作为一种高效的自平衡二叉搜索树,通过巧妙的颜色约束规则在插入和删除时以更少的旋转操作维持树的近似平衡。本文从红黑树的核心概念出发,详细解析了其五大平衡规则和效率保证机制,并通过完整的C++代码实现展示了插入操作中的变色、单旋和双旋等平衡调整策略。与严格的AVL树相比,红黑树通过允许一定程度的高度不平衡,在实际应用中实现了更优的整体性能,成为C++ STL中map和set等关联容器的底层实现基础。

2025-11-18 09:50:16 1491 87

原创 【C++】深入解析AVL树:平衡搜索树的核心概念与实现

本文深入解析了AVL树的核心概念与实现,包括节点结构设计、平衡因子定义及其更新机制、插入操作的自下而上平衡调整策略,以及四种旋转方式(左单旋、右单旋、左右双旋、右左双旋)对保持树平衡的重要作用。同时,提供了AVL树高度计算与平衡检测的实现方法,确保每个节点的平衡因子正确维护,从而保证树在插入操作后的高效性与稳定性。通过本文内容,读者可以系统掌握AVL树的原理、实现与调试技巧,为高性能二叉搜索树的应用打下坚实基础。

2025-11-17 12:20:47 1429 65

原创 【C++】 map/multimap底层原理与逻辑详解

C++ STL中的map和multimap都是基于红黑树实现的有序关联容器,支持O(log n)的高效查找。map存储唯一键值对,提供operator[]直接访问元素,适合键唯一的场景;multimap允许键重复但不支持operator[],通过equal_range可获取重复键的所有对应值,适合一键多值的需求。两者都支持迭代器遍历、范围查找和丰富的增删改查操作,是处理有序键值对数据的核心工具。

2025-11-15 12:06:41 1217 62

原创 【C++】 set/multiset底层原理与逻辑详解

本文详细介绍了C++ STL中的两种关联式容器:`set` 和 `multiset`。这两种容器都基于平衡二叉搜索树(通常是红黑树)实现,能够自动对元素进行排序。`set` 要求元素唯一,而 `multiset` 允许重复元素。文章全面讲解了它们的构造函数、迭代器、插入删除操作、查找功能以及各种实用成员函数的使用方法。

2025-11-15 11:59:17 908 26

原创 【C++】教你学会键值对使用技巧,make_pair太香了!

本文介绍了C++中的关联式容器及其核心概念——键值对(pair)。关联式容器与序列式容器的主要区别在于其通过键(key)来高效查找、插入和删除元素,底层通常采用平衡二叉搜索树或哈希表实现。文章重点讲解了pair的结构、构造函数以及简化操作的make_pair函数。

2025-11-15 11:48:31 737 16

原创 【C++】二叉搜索树深拷贝的致命陷阱:如何用前序遍历解决90%程序员的内存崩溃难题

本文以 “Key 结构→KeyValue 结构” 为演进主线,完整实现了两种结构的非递归与递归操作(插入、查找、删除),并针对默认成员函数(拷贝构造、赋值运算符重载、析构)的深拷贝需求,设计了基于前序遍历的拷贝逻辑、“拷贝 - 交换” 的赋值技法及后序遍历的销毁逻辑,同时结合 “小区车库车牌验证”“单词拼写检查”“中英互译字典” 等实际场景,清晰区分两种结构的适用范围,为 BST 的工程化应用提供了可直接复用的代码模板与逻辑指导。

2025-11-14 10:59:21 1237 76

原创 【C++】优选算法必修篇之双指针实战:水果成篮 & 找到字符串中所有字母异位词

在本篇文章中,我们通过「水果成篮」与「找到字符串中所有字母异位词」两个经典题目,深入理解了滑动窗口的核心思想与应用方式。

2025-11-14 10:00:00 931 5

原创 【C++】深入拆解二叉搜索树:从递归与非递归双视角,彻底掌握STL容器的基石

二叉搜索树(BST)是一种重要的数据结构,它通过"左子树所有节点值小于根节点,右子树所有节点值大于根节点"的特性实现高效的元素组织。本文详细解析了BST的核心概念、性能特点,并分别通过非递归和递归两种方式完整实现了插入、查找、删除等关键操作,深入探讨了指针引用在递归实现中的巧妙应用,以及两种实现方式在时间复杂度、空间复杂度和适用场景上的差异。

2025-11-13 18:10:44 1349 48

原创 【C++】优选算法必修篇之双指针实战:最大连续1的个数 & 将x减到0的最小操作数

在本篇文章中,我们通过「最大连续1的个数」与「将x减到0的最小操作数」两个经典题目,深入理解了 滑动窗口算法的核心思想与应用方式。

2025-11-12 13:49:28 1199 24

原创 【C++】优选算法必修篇之滑动窗口实战:长度最小的子数组 & 无重复字符的最长子串

在本篇文章中,我们通过「长度最小的子数组」与「无重复字符的最长子串」两个经典题目,深入理解了 “滑动窗口”的核心思想与应用方式。

2025-11-11 09:44:37 1213 14

原创 【C++】优选算法必修篇之双指针实战:三数之和 & 四数之和

【C++】高效算法必修篇之双指针实战:三数之和 & 四数之和

2025-11-08 13:10:42 883 13

原创 【C++】多态到底难在哪?虚函数表 + 动态绑定,一篇吃透底层逻辑!

本文深入解析 C++ 多态的底层逻辑,聚焦运行时多态,从概念、实现条件、虚函数机制、虚表原理到抽象类、菱形继承等场景,结合代码与内存图解,全面梳理多态的核心知识与面试考点。

2025-11-07 10:24:49 1626 115

原创 【C++】优选算法必修篇之双指针实战:有效三角形个数 & 和为s的两个数字

在掌握了双指针基础模型(快慢指针、对撞指针)之后,我们进一步探索双指针在数学组合问题中的精妙应用。本篇通过「有效三角形个数」和「和为s的两个数字」两个经典问题。

2025-11-07 10:23:15 848 67

原创 【C++】优选算法必修篇之双指针实战:快乐数 & 盛水最多的容器

在本篇文章中,我们通过「快乐数」与「盛水最多的容器」两个经典题目,深入理解了 双指针(Two Pointers)的核心思想与进阶应用。

2025-11-06 10:51:26 1042 22

原创 【C++】优选算法必修篇之双指针实战:移动零 & 复写零

本文讲解了使用快慢指针解决两道题目:移动零和复写零。

2025-11-05 12:15:36 1141 18

原创 【Linux】 Ubuntu 与 CentOS 新手安装指南,避坑要点全总结

本文的目标是让你在 2000-3000 字的篇幅内,不仅学会如何“装上”系统,更能理解“为什么”这么装,从而为后续的 Linux 学习之旅打下最坚实的基础。

2025-11-04 11:48:19 1779 97

原创 【Linux】信号机制详解:进程间通信的核心

信号(Signal)是Linux系统中最古老、最基础的进程间通信(IPC)机制之一。它为进程提供了一种异步通知机制,允许操作系统或其他进程向目标进程发送特定事件的通知。本文将深入探讨Linux信号机制的原理、分类、处理方式以及实际应用,帮助读者全面掌握这一核心技术。

2025-10-31 09:45:10 1094 93

原创 【Rust】路由匹配与参数提取:从 match 语句到 axum 的类型魔法

在任何 Web 框架中,路由(Routing)都是其最核心的功能之一。它负责解析传入请求的 URL,并将其分派给正确的处理逻辑。然而,一个优秀的路由系统远不止于此,它还应能优雅、安全地从请求中提取动态参数。本文将深入探讨 Rust 生态中路由匹配与参数提取的实现机制。我们将从路由的基本概念出发,逐步过渡到现代 Rust Web 框架 `axum` 的实战。

2025-10-30 20:27:01 1368 92

原创 【Rust】异步处理器(Handler)实现:从 Future 本质到 axum 实战

我们将以流行的 `axum` 框架为实战平台,演示如何处理共享状态、自定义错误响应,并最终总结出一套编写优雅、高效异步 Handler 的最佳实践。

2025-10-30 20:23:31 1633 6

原创 【Linux】Ubuntu 与 CentOS 选择指南:两大主流 Linux 发行版的优劣势对比

在广袤的 Linux 世界中,Ubuntu 和 CentOS 无疑是两颗最耀眼的明星,尤其是在服务器领域,它们占据了绝大部分市场份额。然而,对于初学者、开发者乃至经验丰富的运维工程师来说,“到底该用 Ubuntu 还是 CentOS?” 这个问题几乎成了一个永恒的议题。

2025-10-27 18:40:35 3751 141

原创 【Linux】 进程管理进阶:从 ps 到 pidstat,高手都在用的监控技巧

在 Linux 系统维护和性能调优中,对系统进程的精确监控和管理是核心技能。本文旨在将读者的进程管理知识从基础的 `ps`、`top` 命令提升到更专业的层面。

2025-10-26 11:50:48 1259 43

原创 【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛

面对 Linux 的命令行,许多新手可能会望而却步。本文旨在打破这一壁垒,提供一份超详细、步骤清晰、真正零门槛的 Linux Web 服务器搭建指南。

2025-10-22 18:33:10 2616 101

原创 【Linux】查看系统版本的 3 种方法:cat /etc/os-release 最实用

在Linux系统管理和日常运维中,准确获取操作系统的版本信息是执行软件安装、脚本兼容性判断、系统升级以及问题排查等任务的基石。

2025-10-20 21:32:33 2203 104

原创 【Linux】操作系统上的进程状态及其转换

本文深入探讨了操作系统中进程的核心概念——进程状态及其转换机制。文章通过图文并茂的方式,详细阐述了进程从创建到终止所经历的就绪、运行、阻塞和挂起等基本状态。重点剖析了每种状态的触发条件、底层管理原理(如PCB、运行队列、阻塞队列)以及它们之间的转换过程,旨在帮助读者清晰理解操作系统是如何通过精妙的状态管理来实现并发执行和高效的资源调配。

2025-10-12 10:35:23 1478 61

原创 【C++】继承深度解析:继承方式和菱形虚拟继承的详解

本文系统讲解了 C++ 中的继承机制,包括单继承、多继承、菱形继承及虚拟继承,配合图解和代码示例直观展示各类继承的对象模型、内存布局及访问特点,重点说明虚拟继承如何通过共享基类实例、虚基表偏移和构造顺序,解决菱形继承的数据冗余与二义性问题。

2025-10-10 22:18:39 2258 89

原创 【C++】继承—C++的秘密武器,get父类的智慧

C++继承是通过派生类继承基类的成员,避免了代码冗余,提升了代码复用性。继承有public、protected和private三种方式,影响成员的访问权限。继承支持多态性,使得同一接口能表现出不同的行为。继承和组合各有优缺点,继承适用于“is-a”关系,而组合适用于“has-a”关系。在使用时需根据需求选择合适的方式,避免过度依赖继承,保持代码的可维护性。

2025-10-08 11:41:20 20640 80

原创 【Linux】进程的初步探险:基本概念与基本操作

本文深入探讨了 进程 的基本概念与操作系统如何管理进程,重点介绍了 进程控制块(PCB) 和 task_struct 数据结构。通过分析程序如何加载成进程,阐述了进程的动态性,以及操作系统如何通过 PCB 组织和管理大量进程的信息。此外,结合实际命令如 ps 和 /proc,讲解了如何查看进程状态,并进一步介绍了 PID 和 PPID 的概念。最后,通过详细的 fork() 示例,探讨了父进程与子进程的关系以及它们如何通过不同的返回值执行各自的任务。

2025-10-06 00:32:40 17585 82

原创 【Linux】操作系统的认识

操作系统是计算机系统中最核心的软件,用于对底层硬件进行统一管理,并为上层用户提供安全、稳定和高效的运行环境。它通过内核实现内存管理、进程调度、文件管理和驱动控制等核心功能;同时借助驱动程序完成与底层硬件的解耦;再向上提供用户操作接口(命令行、图形界面、库函数等),让用户能够以简洁、直观的方式使用复杂的系统资源。理解操作系统的管理本质,就是理解其如何通过“抽象”和“组织”来屏蔽底层复杂性,实现对硬件和软件的统一调度与管理。

2025-10-03 00:18:45 2878 73

原创 【Linux】冯 • 诺依曼体系结构

本文从冯·诺依曼体系结构的五大基本部件入手,结合直观图解和表格,系统讲解了该体系的形成与发展逻辑,重点分析了内存在提高整体效率中的核心作用。随后通过“登录 QQ 并与好友聊天、传输文件”的实例,将抽象的体系结构与实际软件运行过程联系起来,帮助读者从硬件概念延伸到对软件数据流的深层理解。

2025-10-02 22:39:34 3978 76

原创 【C++】玩转模板:进阶之路

本文围绕 C++ 模板的进阶用法展开,从非类型模板参数入手,结合array容器对比传统 C 数组,深入分析了类模板的全特化与偏特化,并通过实例展示如何对不同类型进行特化。随后介绍了模板的分离编译问题,解析了为什么模板声明与定义分离会导致链接错误,以及如何通过显式实例化或头文件内定义来解决。文章配合代码与图解,力求让读者清晰理解模板的底层机制和实际应用。

2025-10-01 02:43:44 15661 15

原创 【笔试强训】Day01

本文整理了笔试强训 Day01 的三道题,涵盖了枚举、排序、哈希和栈等常见技巧,带你快速回顾高频算法思路。

2025-09-24 21:29:06 1104 11

空空如也

空空如也

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

TA关注的人

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