JOURNAL · THINKING & PRACTICE
时间复杂度
- 202610/13
从零构建企业级数据库协作环境:阿里云 Linux 3 部署 MySQL、Redis、PostgreSQL 与 pgvector 全指南
以阿里云 ECS 和 Alibaba Cloud Linux 3 为基础,系统讲解服务器初始化、SSH、安全组、DNF 与 systemd,再分别完成 MySQL 8.4、Redis、PostgreSQL 17 及 pgvector 的安装、配置、测试、运维。进一步以真实研发团队为模型,设计开发、测试、预发布与生产环境隔离,PostgreSQL 分层角色授权、团队成员生命周期管理、Flyway 数据库迁移、CI/CD、测试数据治理、备份恢复和故障排查。教程既能用于个人实验,也能迁移到多人协作、Java 微服务、Python AI Agent 和企业级项目。
- 202610/12
LeetCode 20|有效的括号:从暴力枚举到栈的五种解法
以 LeetCode 20「有效的括号」为例,从最直观的暴力消除法出发,逐步推导标准栈、提前压入右括号、映射表与双端队列、数组模拟栈五种解法。结合黑盒与白盒测试、详细执行步骤、复杂度分析,以及 C、C++、Java、Python、JavaScript 五语言实现,理解括号匹配的核心原理、算法优化过程与不同方案的适用场景。
- 202610/11
从一次 HTTP 请求到高并发系统:Java Web 架构的六阶段演进
一次 HTTP 请求如何从浏览器抵达 Spring MVC,再经 Controller、Service、Mapper 和 MySQL 返回响应?当请求从一个变成多个、从单机并发演进到集群和分布式系统时,线程池、数据库连接池、事务与锁、Redis、Nginx、消息队列、读写分离以及微服务分别解决什么问题?本文以 Java 全栈开发为主线,沿着“单次请求 → 单机并发 → 正确性与性能瓶颈 → 多实例集群 → 数据与异步扩展 → 微服务治理”六个阶段建立完整认知,并给出可验证的实操路线。
- 202610/08
从仓库、银行到图书馆:操作系统三大经典并发问题,如何走进 Java Web?
为什么电商订单需要消息队列?为什么资源够用也不一定能分配?为什么多个线程能一起读缓存,却不能随意同时修改?从生产者—消费者、银行家算法、读者—写者三个操作系统经典问题出发,以生活类比、PV 操作、伪代码和 C / Java / Python / C++ / JavaScript 五语言实现,理解它们如何迁移到 Spring Boot、任务调度、管理系统与高并发业务,并厘清 JVM 锁、数据库事务和分布式消息之间的边界。
- 202609/25
一次点击到底发生了什么?Java 全栈请求从浏览器到 MySQL 的完整链路
学习 Java 全栈时,我们往往会分别接触 Vue、HTTP、Nginx、Spring Boot、Spring MVC、Controller、Service、MyBatis、MySQL、Redis、消息队列等技术。真正困难的并不是记住这些名词,而是理解它们在一个真实项目中如何连接。本文沿着一次真实用户操作,把“打开网站”和“调用后端 API”两条链路串起来:从浏览器、网络、Nginx、Tomcat、Spring MVC,到 Controller、Service、MyBatis、JDBC、MySQL,再返回 Vue 页面;同时把 Redis、MQ、WebSocket、定时任务、安全、事务、异常处理与可观察性放回它们真正所在的位置。
- 202609/18
前端技术发展史:从静态文档到现代 Web 应用平台
前端技术的发展,并不是 HTML、CSS、JavaScript、jQuery、Vue、React、TypeScript、Vite 等技术简单地一代替代一代,而是 Web 从“浏览超文本文档”逐步演化为“运行复杂软件应用”的过程。最初的 Web 只需要解决信息如何通过网络被访问,随后逐渐出现页面样式、用户交互、异步通信、组件化、状态管理、模块化、工程化、类型系统、服务器渲染以及全栈 Web Framework。本文按照时间与技术演化关系,梳理现代前端三十多年的发展历程,并解释每项重要技术为什么出现、解决了什么问题,以及它们在今天前端体系中的位置。
- 202609/17
Java 日期时间 API 完整学习指南:从 LocalDate 到 ZonedDateTime
本文基于 JDK 8+ / JDK 21 的现代日期时间 API,对 Java 中最常用的 LocalDate、LocalTime、LocalDateTime、DateTimeFormatter、Period、Duration、ChronoUnit、Instant、ZoneId、ZonedDateTime、OffsetDateTime、TemporalAdjusters、YearMonth 等 API 进行系统整理。 全文按照“API 总表 → 单独示例 → 类型转换 → Web 开发映射 → 综合案例”展开,并对核心方法进行连续编号。掌握本文内容后,应能够独立完成生日计算、订单过期、时间格式化、时间差计算、时区转换、时间戳处理等常见业务。
- 202609/14
软件开发流程:如何从想法落地成工程
本文围绕软件开发的完整生命周期展开,从需求分析、系统设计、编码开发、软件测试,到项目部署、运行维护和版本迭代,梳理一个软件从想法到正式上线的完整过程。同时介绍常见开发模型、系统设计方法、测试方式、部署流程以及线上故障排查与维护思路,帮助建立完整的软件工程开发认知。
- 202609/09
Java 核心 API 速查:数组、String、日期时间与 BigDecimal
JavaSE 基础阶段高频核心知识速查。 JDK:21 范围:数组、二维数组、`Arrays`、`String`、`StringBuilder`、`java.time`、`BigDecimal`
- 202609/08
从两个数比较到十大排序算法
第二个式子保证排序只改变位置、不增加、不删除也不篡改元素。 NIST 对排序的定义同样强调两个基本条件:结果必须满足预定顺序,并且结果必须是原始数据的一个排列。排序算法实际上存在几十种,选择哪一种与数据规模、可用内存、数据原有有序程度、键值范围以及比较和移动数据的成本有关。 获得元素之间的顺序关系。 这类算法不仅使用元素之间的大小关系,还会利用数据本身的结构信息。 下面所有代码均按升序排序。
- 202609/08
Java 全栈学完后到底能做什么?从淘宝、美团、12306、Salesforce、SAP 看真实企业项目
学习 Java 全栈时,我们经常接触商城、外卖、ERP、CRM、票务系统等项目,但如果只停留在“商品 CRUD、订单 CRUD、用户 CRUD”,很难真正理解 Java 企业开发到底在解决什么问题。 事实上,**淘宝、美团外卖、12306、Salesforce、SAP 等成熟系统,分别代表了电商交易、即时配送、票务交易、企业 SaaS、ERP 等典型软件形态**。 本文不讨论教学 Demo,而是从这些真实成熟产品出发,分析它们背后的业务模型、系统复杂度以及 Java 技术体系可以承担的工程职责,从而回答一个更实际的问题: > **Java 全栈真正学完以后,到底可以开发什么?
- 202609/08
B端、C端、G端与 ERP、CRM、WMS:企业业务系统常见术语全景指南
在企业软件和互联网产品中,经常会遇到 **B端、C端、G端、ERP、CRM、SCM、WMS、MES、OA、SaaS** 等术语。 这些概念看似零散,实际上主要回答四个问题: 1. **系统给谁使用?** 2. **业务发生在谁和谁之间?** 3. **系统解决什么企业业务问题?** 4. **软件通过什么方式部署和交付?** 本文按照统一分类框架,对常见企业业务系统与行业术语进行梳理,帮助快速建立企业软件领域的整体认知。
- 202609/04
Java 一共有多少种数据类型?——从 8 种基本类型到完整 Java 类型体系
本文系统梳理 Java 的完整类型体系,从 **8 种基本数据类型** 出发,进一步介绍类、接口、数组、类型变量以及泛型中的参数化类型、通配符、交叉类型等概念,并解释 `String`、`Integer`、`void`、`var`、`null` 等常见易混点,帮助建立完整、严谨的 Java 类型系统认知。
- 202609/02
全球顶级软件产品生态:从超级 App 到 AI Agent,重新理解数字世界的入口之争
本文梳理全球顶级软件公司及产品生态,从社交、支付、内容、云计算到AI与开发工具,分析超级App、平台生态与AI Agent的演化,并探讨AI如何成为下一代数字世界统一入口。
- 202608/31
LeetCode 11|盛最多水的容器:从暴力枚举到双指针优化
本题求数组两线间“短板×宽度”的最大值。暴力法枚举全以 LeetCode 11「盛最多水的容器」为例,从最直观的暴力枚举出发,逐步推导标准双指针与双指针剪枝三种解法。结合短板效应、算法正确性证明、黑盒与白盒测试、详细执行步骤及复杂度分析,深入理解双指针算法的优化原理,并提供 C、C++、Java、Python、JavaScript 五种语言的完整注释实现。部组合(O(n²)),双指针法则通过每次移动较短的指针向中心靠拢,以 O(n) 时间高效求解,是本题最优解。
- 202608/28
HelloWorld
helloworld
没有符合当前筛选条件的文章。