- 博客(33)
- 收藏
- 关注
原创 Python 对象模型与数据模型:魔术方法、描述符与元类深度解析
魔术方法(Magic Methods),又称双下划线方法(Dunder Methods),是 Python 数据模型的核心。它们以双下划线开头和结尾(如__len__),不需要显式调用,而是在特定语法场景下由 Python 解释器自动触发。描述符(Descriptor)是实现了__get____set____delete__中至少一个方法的对象。它用于拦截属性访问,是 Python 属性机制的底层协议。print("访问属性")
2026-09-30 16:48:51
312
原创 IntelliJ IDEA 使用指南:从入门到高效开发
菜单栏:包含 File、Edit、View、Navigate、Code、Run 等菜单,几乎所有功能都可以在这里找到。工具栏:提供常用操作的快捷按钮,如运行、调试、版本控制等。项目结构窗口(Project):显示项目的文件目录结构,可以在这里浏览和管理项目文件。编辑器区域:代码编辑的主要区域,支持多标签页切换。底部工具窗口:包括 Terminal、Problems、Version Control、Build 等,可以在这里查看编译输出、运行日志等信息。在中可以自定义代码模板。例如,可以创建一个。
2026-09-30 16:45:27
270
原创 Maven 从入门到实战:项目管理与构建工具完全指南
Maven 是一个基于项目对象模型(POM)的项目管理和构建自动化工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。它由 Apache 软件基金会维护,是目前 Java 生态中最流行的构建工具之一。Maven 的核心思想是约定优于配置(Convention over Configuration),通过提供一套标准的项目结构和构建生命周期,让开发者无需为每个项目单独编写构建脚本,从而将精力集中在业务逻辑开发上。
2026-09-29 16:57:57
228
原创 SVN 版本控制从入门到实战:安装、配置与日常使用指南
SVN(Subversion)是一款开源的集中式版本控制系统,由 CollabNet 公司于 2000 年发起,旨在取代老旧的 CVS。与 Git 的分布式架构不同,SVN 采用集中式管理模型:所有版本数据统一存储在中央服务器上,客户端通过 checkout 获取代码副本,通过 commit 提交变更。SVN 作为经典的集中式版本控制系统,凭借其简单直观的模型、强大的权限管理和成熟的工具链,在企业环境中依然有着广泛的应用场景。本文从安装配置、日常操作到分支管理和冲突解决,系统性地介绍了 SVN 的核心用法。
2026-09-29 16:57:06
261
原创 Git 从入门到实战:分布式版本控制完全指南
Git 是一个分布式版本控制系统,它提供了一套高效的分支管理和版本追踪机制。与 SVN 相比,Git 的分支操作更轻量、速度更快,适合团队协作和开源项目开发。Git 不仅管理代码文件,还支持对目录、二进制文件等进行版本控制。分布式架构:每个开发者本地拥有完整版本历史,支持离线工作。高效分支:分支创建和切换轻量快速,适合并行开发和功能隔离。协作便捷:通过远程仓库实现团队协作,支持代码审查和持续集成。掌握 Git 是每个开发者的必备技能。
2026-09-24 13:30:55
233
原创 Java微服务与云原生:CI/CD(Jenkins/GitLab CI、ArgoCD)实战指南
CI/CD 是 Java 微服务云原生转型的关键基础设施。通过 Jenkins 或 GitLab CI 实现持续集成,结合 ArgoCD 实现 GitOps 持续交付,可以构建一套完整、高效、可靠的自动化发布体系。在实际落地过程中,建议根据团队技术栈和业务需求选择合适的工具组合,遵循「小步快跑、持续验证」的原则,逐步完善流水线,最终实现从代码提交到生产部署的全自动化。
2026-09-24 13:30:25
315
原创 Java微服务与云原生:Service Mesh(Istio、Envoy流量劫持)实战指南
Service Mesh 作为云原生时代的关键基础设施,为 Java 微服务提供了统一的流量管理、安全加固和可观测性能力。通过 Istio 与 Envoy 的流量劫持机制,业务代码得以从复杂的网络治理逻辑中解放出来,真正实现了「业务与技术」的分离。随着云原生技术的持续演进,Service Mesh 正在向更轻量、更智能的方向发展。未来,Service Mesh 将与 Serverless、多集群联邦等技术深度融合,为微服务架构提供更强大的支撑能力。
2026-09-22 13:35:50
148
原创 Java微服务与云原生:Kubernetes核心机制深度解析
云原生(Cloud Native)是一种构建和运行应用程序的方法,它充分利用云计算模型的优势。使用开源软件栈将应用程序分解为微服务,将每个部分部署在自己的容器中,并动态编排这些容器以优化资源利用率。容器化:将应用及其依赖打包成标准容器镜像微服务:将单体应用拆分为独立部署的小型服务动态编排:通过 Kubernetes 等平台自动管理容器的生命周期DevOps:开发与运维一体化,实现持续交付Ingress 是 Kubernetes 中管理集群外部访问的 API 对象。
2026-09-22 13:30:28
191
原创 Java微服务与云原生:Docker
Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。与传统的虚拟机不同,Docker 容器共享宿主机的操作系统内核,因此启动速度更快、资源占用更少。网络模式特点适用场景bridge默认模式,容器间通过虚拟网桥通信单机多容器host容器直接使用宿主机网络性能要求高的场景none无网络安全隔离场景overlay跨主机容器通信集群部署。
2026-09-20 15:40:28
278
原创 Java微服务与云原生:服务治理
Sentinel是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件。它以「资源」为粒度,提供了丰富的流量控制、熔断降级、系统负载保护等能力,并且拥有实时监控控制台,是云原生时代服务治理的利器。通过return "订单创建成功,用户:" + userId;// 限流降级处理逻辑return "系统繁忙,请稍后再试!// 每秒最多 10 个请求Hystrix是 Netflix 开源的一款延迟和容错库,用于隔离访问远程系统、服务或第三方库的依赖点,防止级联故障,提供弹性容错能力。
2026-09-20 15:39:42
97
原创 Java微服务与云原生:Spring Cloud实战指南
微服务架构是一种将单一应用程序划分为一组小服务的架构风格,每个服务运行在自己的进程中,服务之间通过轻量级通信机制(通常是 HTTP API)进行交互。每个服务围绕具体业务能力构建,可以独立部署、独立扩展。Ribbon 是 Netflix 开源的客户端负载均衡器,它可以在客户端维护服务实例列表,并根据负载均衡策略选择合适的实例发起请求。Feign 是 Netflix 开源的声明式 HTTP 客户端,它通过接口和注解的方式定义 HTTP 调用,让服务调用像调用本地方法一样简单。
2026-09-18 16:19:01
149
原创 Java中间件与消息队列:分布式调度
XXL-JOB 是由大众点评开源的一款轻量级分布式任务调度平台,其核心设计目标是"学习简单、开发迅速、轻量级、易扩展"。目前已广泛应用于国内各大互联网公司。ElasticJob 是当当网开源的一款分布式调度解决方案,由两个相互独立的子项目组成:ElasticJob-Lite 和 ElasticJob-Cloud。它基于 Quartz 开发,并进行了大量扩展,提供了更加灵活的分布式调度能力。分布式调度是现代微服务架构中不可或缺的基础设施。
2026-09-18 16:18:16
160
原创 Java中间件与消息队列:RocketMQ / RabbitMQ 深度解析
顺序消息要求同一业务维度(如订单 ID)的消息按发送顺序被消费。典型场景:订单创建 → 支付成功 → 发货,必须严格按序执行,否则状态错乱。维度RocketMQRabbitMQ原生支持✅ 分区顺序开箱即用❌ 需自行约束单队列单消费者实现成本低(选择器路由)高(牺牲并发)吞吐影响小(Queue 内并行)大(单消费者串行)适用场景订单、交易流水简单顺序场景延迟消息指消息发送后不立即投递,而是等待指定时间后才被消费者可见。典型场景:订单超时未支付自动关闭、定时任务调度、限时优惠提醒。
2026-09-15 12:26:04
214
原创 Java中间件与消息队列:Kafka
在当今大数据与微服务架构盛行的时代,消息队列作为系统解耦、异步处理、流量削峰的核心组件,扮演着至关重要的角色。而在众多消息中间件中,Apache Kafka 凭借其高吞吐、低延迟、可水平扩展的特性,成为业界事实上的标准。本文将深入剖析 Kafka 的四大核心机制:分区重平衡(Rebalance)、零拷贝(Zero-Copy)、幂等性(Idempotence) 与 事务消息(Transactional Messaging)。我们将从原理出发,结合 Java 代码实践,帮助读者真正理解 Kafka 的内部运作,
2026-09-15 12:24:54
223
原创 Java中间件与消息队列:分布式事务(TCC、Saga、Seata AT、本地消息表)
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上,需要保证这些操作要么全部成功,要么全部失败。Seata(Simple Extensible Autonomous Transaction Architecture)是阿里巴巴开源的一款分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。分布式事务是微服务架构中的核心挑战之一。
2026-09-13 11:40:05
183
原创 Java数据库与数据存储:Elasticsearch进阶
Elasticsearch 的问题排查需要遵循「先看集群健康 → 再看节点状态 → 最后看索引和查询」的思路。本文总结了集群状态、查询性能、数据写入、内存管理、索引生命周期等维度的常见问题及解决方案。建立完善的监控告警体系(CPU、内存、磁盘、GC)。定期执行集群健康检查和索引优化。做好容量规划,避免分片过大或过小。生产环境务必配置 ILM 策略,防止索引无限增长。希望本文能帮助大家在遇到 Elasticsearch 问题时快速定位并解决。如果你有更多实战问题,欢迎在评论区交流讨论。
2026-09-13 11:17:42
161
原创 Java数据库与数据存储:MongoDB / TiDB
MongoDB 与 TiDB 代表了数据库领域两条截然不同的技术路线:前者以灵活性和开发效率见长,后者以强一致性和 SQL 兼容性立足。对于 Java 开发者而言,选型的核心不在于「哪个更好」,而在于「哪个更适合当前业务场景」。如果你的业务数据结构多变、追求快速迭代,MongoDB 是理想选择。如果你的业务强依赖事务与复杂查询、且数据量持续增长,TiDB 能提供平滑的扩展路径。在大型系统中,两者完全可以共存,各司其职。
2026-09-12 21:34:56
336
原创 Java数据库与数据存储:Elasticsearch
注意:ES 7.x 与 8.x 的客户端 API 有较大差异,本文基于 7.17 版本讲解,这也是目前国内生产环境使用最广泛的版本。在开始讲解原理之前,我们先搭建一个基于 Java 的 Elasticsearch 客户端环境,方便后续代码演示。(例如搜索包含"Java"的所有文章),B+ 树就无能为力了——它只能做前缀匹配,无法处理分词后的模糊匹配。通过本文,你将不仅会使用 ES 的 API,更能理解其底层原理,从而在面试和实际项目中游刃有余。,ES 会同时遍历两个倒排列表,通过跳表快速跳过不匹配的文档。
2026-09-12 21:34:27
254
原创 Java数据库与数据存储:Redis
Redis(Remote Dictionary Server)是一个开源的、基于内存的键值对存储系统,由 Salvatore Sanfilippo 于 2009 年开发。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,并提供了丰富的操作命令。
2026-09-11 13:07:13
169
原创 Java数据库与数据存储:分库分表实战
轻量级Java框架,以jar包形式提供服务,适合单体或微服务应用。:透明数据库代理,以独立服务形式部署,对应用无侵入。:云原生环境下的代理(目前演进中)。本文重点讲解最常用的。throw new RuntimeException("时钟回拨异常");生产环境建议直接使用 ShardingSphere 内置的雪花算法,或引入成熟的hutool内置ID生成器。// 1. 插入订单(订单库)// 2. 扣减库存(库存库)
2026-09-11 13:06:47
143
原创 Java 面试必问:MySQL 索引优化、执行计划、MVCC、锁机制与主从复制全解析
索引是帮助 MySQL 高效获取数据的数据结构。它就像一本书的目录,可以让我们快速定位到目标数据,而无需扫描整张表。索引可以显著提升查询性能,但也会带来额外的存储开销和写入性能损耗。执行计划是 MySQL 优化器根据 SQL 语句生成的执行方案。通过EXPLAIN关键字可以查看 SQL 的执行计划,帮助我们分析查询性能瓶颈。MVCC(Multi-Version Concurrency Control,多版本并发控制)是 MySQL InnoDB 存储引擎实现隔离级别的一种机制。
2026-09-10 11:10:49
299
原创 Java主流框架与源码:MyBatis / Hibernate
在深入源码之前,我们先从宏观上把握两者的定位差异。特性MyBatisHibernate定位半自动 ORM,SQL 由开发者控制全自动 ORM,SQL 由框架自动生成SQL 控制完全掌控,SQL 写在 XML 或注解中基于 HQL/Criteria,自动生成 SQL学习曲线较低,需熟悉 SQL较高,需理解 ORM 映射与缓存机制性能调优灵活,SQL 可精细优化依赖缓存与抓取策略,调优复杂缓存一级(SqlSession)与二级(Mapper)缓存。
2026-09-10 11:10:14
135
原创 Java主流框架与源码:Spring Security / Shiro
功能强大、生态完善,是 Spring 项目的首选安全框架,适合企业级与微服务架构。轻量灵活、上手简单,适合中小型项目或对安全要求不复杂的场景。OAuth2解决了第三方授权与分布式认证的难题,JWT则提供了无状态、跨域友好的令牌方案。两者结合(Spring Security + OAuth2 + JWT)已成为现代 Java 后端认证授权的标准组合。掌握认证授权的核心原理与源码实现,不仅能让你写出更安全的代码,更能让你在面对复杂业务时游刃有余。希望本文能帮助你建立起对这两大框架的系统认知。
2026-09-09 14:24:27
262
原创 Java主流框架与源码:Spring MVC
Spring MVC 是 Spring 框架中基于 Servlet API 构建的 Web 框架,它遵循Model(模型):负责业务数据与业务逻辑,通常由 Service、DAO 层支撑。View(视图):负责渲染结果,如 JSP、Thymeleaf、FreeMarker 等模板引擎。Controller(控制器):负责接收请求、调用业务逻辑、返回视图或数据。Spring MVC 的核心是。
2026-09-08 16:40:00
211
原创 Java主流框架与源码:Spring Boot(自动配置原理、Starter开发、Actuator)
理解了自动配置原理后,开发一个自定义 Starter 就变得非常简单。autoconfigure 模块:包含自动配置类、条件注解、配置属性类。starter 模块:一个空的 POM 模块,仅依赖 autoconfigure 模块及所需第三方库。我们可以实现@Component@Override通过@Endpoint@Component访问即可获取自定义信息。自动配置原理:通过+ 条件注解,实现按需自动装配。自定义 Starter。
2026-09-07 11:15:43
292
原创 Java语言与虚拟机:类加载机制与双亲委派
类加载(Class Loading)是指 JVM 将.class文件中的二进制数据读入内存,对其进行校验、转换、解析和初始化,最终形成可以被 JVM 直接使用的对象的过程。简单来说,类加载就是把"静态的字节码"转化为"动态的运行时对象"的桥梁。除了内置的三大类加载器,我们还可以通过继承来创建自定义类加载器。这在实现热部署、类隔离、加密解密等高级功能时非常有用。/*** 一个简单的自定义类加载器,从指定路径加载 .class 文件int len;= - 1) {
2026-09-07 11:15:16
314
原创 Java语言与虚拟机:并发编程
JMM(Java Memory Model,Java 内存模型)是 Java 虚拟机规范中定义的一组规则,它规定了在多线程环境下,共享变量的读写如何在主内存与工作内存之间进行同步,从而保证并发程序的可见性有序性和原子性。主内存(Main Memory):所有线程共享的内存区域,存储所有变量的最终值。工作内存(Working Memory):每个线程私有的内存区域,保存了线程使用到的变量的副本。线程对变量的所有操作(读取、赋值)都必须在工作内存中进行,不能直接读写主内存中的变量。
2026-09-06 07:44:26
343
原创 Java语言与虚拟机:Java Agent与字节码增强
Java Agent 是 JDK 1.5 引入的一项特性,它允许开发者在 JVM 启动时或运行期间,通过包提供的 API,对已加载或即将加载的类进行字节码转换。简单来说,Java Agent 就是一个"钩子",它可以在类加载到 JVM 之前或之后,拦截并修改类的字节码,从而实现无侵入式的功能增强。Java 源代码经过编译后生成.class文件,其中存储的就是字节码(Bytecode)。字节码是 JVM 能够识别的指令集,它介于源代码和机器码之间,具有平台无关性。");Code:)V。
2026-09-06 07:43:34
288
原创 Java 语言与虚拟机:JDK 8/11/17/21 新特性全解析
从 JDK 8 到 JDK 21,Java 完成了一次华丽的蜕变。JDK 8 奠定了函数式编程的基础,JDK 11 带来了生产力提升,JDK 17 强化了语言特性,而 JDK 21 则通过虚拟线程、模式匹配和结构化并发,将 Java 推向了现代并发编程的巅峰。对于开发者而言,掌握这些新特性不仅是技术上的提升,更是思维方式的转变。虚拟线程让我们重新思考并发模型,模式匹配让代码更加表达力丰富,结构化并发让并发编程更加可靠和可维护。
2026-09-05 22:58:19
341
原创 Java主流框架与源码:Spring Framework
/ 1. 定义事件// 2. 定义监听器(方式一:实现接口)@Component@OverrideSystem.out.println("收到订单创建事件,订单ID: " + event.getOrderId());// 发送短信、更新库存等// 3. 定义监听器(方式二:@EventListener 注解,推荐)@Component@Async // 配合 @EnableAsync 实现异步监听。
2026-09-05 22:57:39
348
原创 Java语言与虚拟机:GC算法与垃圾回收器
Java垃圾回收器的技术文章,涵盖了GC算法、G1、ZGC、Shenandoah等主流回收器的原理和特点。 摘要需要提炼核心信息,字数有限,要抓住主要脉络。内容主要讲Java自动内存管理,GC算法的基础,以及现代回收器的演进。核心是停延时间、吞吐量、内存占用的权衡,以及G1、ZGC、Shenandoah各自的技术特点。 组织摘要时,可以从Java的自动内存管理引入,提到GC算法的演化,然后重点突出三种主流回收器的技术特色和
2026-09-04 16:52:44
372
原创 Java语言与虚拟机:JVM内存模型与运行时数据区
运行时数据区线程共享/私有存储内容可能抛出的异常程序计数器线程私有当前线程执行的字节码行号指示器无(规范未规定 OOM)Java 虚拟机栈线程私有局部变量表、操作数栈、动态连接、方法出口本地方法栈线程私有Native 方法执行时的栈帧Java 堆线程共享对象实例、数组方法区(元空间)线程共享类型信息、常量、静态变量、运行时常量池直接内存非运行时数据区NIO 堆外缓冲区。
2026-09-04 16:41:59
523
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅