跳转至

2023

Java 线程编程详解

进程 是在内存中运行的应用程序,拥有独立的内存空间;线程 是进程中的执行单元,多个线程共享进程的堆和方法区资源,但各自拥有独立的程序计数器、虚拟机栈和本地方法栈。由于线程切换开销较小,因此也被称为「轻量级进程」。

位运算算法详解

位操作(Bit Manipulation)是程序设计中对位模式或二进制数的一元和二元操作。虽然现代编译器已对基本运算进行了优化,但掌握位运算技巧仍然是算法面试和底层开发的必备技能。

动态规划算法详解

动态规划(Dynamic Programming,DP)是一种通过将原问题分解为相对简单的子问题来求解复杂问题的方法。它常用于具有 重叠子问题最优子结构 性质的问题。

动态规划有两种求解方式:

  • 自顶向下:记忆化递归
  • 自底向上:递推

动态规划的核心特点是 无后效性——一旦子问题的解确定,后续计算不会修改它。

Istio 服务网格架构详解

Istio 是 Service Mesh 架构的主流实现,服务之间的通信通过 Sidecar 代理(默认是 Envoy)进行。它支持 HTTP/1.1、HTTP/2、gRPC 和 TCP 等主流协议。

Service Mesh 服务网格详解

Service Mesh(服务网格)是一种控制应用程序不同部分之间数据共享方式的基础设施层。与其他通信管理系统不同,服务网格是直接构建在应用程序内部的专用基础设施层。

算法刷题问题总结

在刷题的过程中遇到了一些经典问题和经典解法,我觉得很有必要对其进行归纳与总结,避免未来遇到同样的问题手忙脚乱。

深度优先搜索算法详解

深度优先搜索(Depth-First Search,DFS)是一种用于遍历或搜索树/图的算法。其核心思想是:对每一个可能的分支路径深入到底,直到不能再深入为止,然后回溯到上一个节点继续探索其他分支。

因发明深度优先搜索算法,约翰·霍普克洛夫特与罗伯特·塔扬于 1986 年共同获得计算机领域的最高奖——图灵奖。

递归与回溯算法详解

递归是计算机科学中的核心概念,是许多算法和数据结构的基础。其核心思想是:将问题分解为更小的子问题,直到子问题足够简单可以直接求解。

每个递归函数都需要包含:

  1. 基本情况(Base Case):不使用递归就能直接求解的终止条件
  2. 递推关系(Recurrence Relation):将问题拆分到基本情况的规则

广度优先搜索算法详解

广度优先搜索(Breadth-First Search,BFS)是一种图形搜索算法。它从根节点开始,沿着树/图的宽度进行遍历——先访问当前层的所有节点,再访问下一层。