自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 01.05.01 Java 基础系列|深入理解 BIO:从核心 API 到实战设计

摘要:本文深入解析Java BIO(阻塞式I/O)编程,从核心API到生产级实现。BIO作为Java网络编程基础,采用同步阻塞模型,通过ServerSocket监听连接、Socket进行数据传输。文章演示了BIO的三个演进阶段:单线程模型(性能低下)、多线程模型(易资源耗尽)到最终的线程池伪异步模型(生产级方案)。重点讲解了线程池配置、资源管理、异常处理等实战技巧,并提供了完整的线程池BIO服务器实现代码,帮助开发者理解传统IO模型的核心原理及其适用场景。

2026-01-03 01:53:35 697

原创 02.01 Spring Boot|自动配置机制深度解析

本文深入解析了Spring Boot自动配置机制的核心原理。主要内容包括:1)自动配置概念及其优势,通过对比传统Spring配置展示其简洁性;2)@SpringBootApplication注解的三重功能分解;3)@EnableAutoConfiguration核心机制,详细分析AutoConfigurationImportSelector的工作流程;4)spring.factories文件机制,说明如何通过该文件定义自动配置类。文章着重讲解了自动配置的底层实现,包括条件注解过滤、配置类加载和排除机制等关键

2026-01-01 23:57:19 1085

原创 01.03 Spring核心|事务管理实战

Spring事务管理核心要点 事务核心概念 ACID特性:原子性、一致性、隔离性、持久性 两种管理方式:编程式事务(TransactionTemplate)和声明式事务(@Transactional) @Transactional注解详解 关键属性:传播行为、隔离级别、超时时间、只读设置、回滚规则 7种传播行为:REQUIRED(默认)、REQUIRES_NEW、SUPPORTS等,各有适用场景 REQUIRED:90%业务场景适用,存在事务则加入,否则新建 REQUIRES_NEW:强制新建事务,适用于日

2026-01-01 23:56:16 892

原创 01.02 Spring核心|AOP实现原理

Spring AOP实现原理摘要 Spring AOP通过动态代理技术实现面向切面编程,主要有两种实现方式: JDK动态代理: 基于接口实现,使用java.lang.reflect.Proxy类 目标类必须实现接口 运行时动态创建代理对象,通过InvocationHandler处理横切逻辑 CGLIB代理: 通过继承目标类实现代理 使用字节码技术(ASM)动态生成子类 可以代理没有实现接口的类 不能代理final方法和类 核心概念包括切面(Aspect)、连接点(Join Point)、切点(Pointcu

2025-12-30 22:28:52 1015

原创 01.01 Spring核心|IoC容器深度解析

Spring IoC容器深度解析 本文深入剖析Spring框架的核心机制IoC容器,主要内容包括: 控制反转原理:通过依赖注入实现松耦合,对比传统紧耦合方式的劣势,展示IoC在解耦、可测试性和灵活性方面的优势。 容器层次结构:详细解析BeanFactory和ApplicationContext两大核心接口的差异,包括特性对比和使用场景建议。 Bean定义与注册:介绍三种Bean定义方式(XML配置、注解配置和自动配置)及其适用场景,分析容器启动的核心流程。 实战应用:通过订单服务案例展示IoC在实际开发中的

2025-12-30 22:27:39 1148

原创 02.02.04 CompletableFuture 线程池与最佳实践:生产环境调优指南

线程池配置:根据任务类型选择合适的线程池监控告警:实时监控线程池状态异常处理:确保异常不会丢失资源管理:优雅关闭,避免资源泄漏核心原则:区分任务类型、隔离线程池、设置超时、处理异常、持续监控。

2025-12-29 00:51:02 806

原创 02.02.03 CompletableFuture 实战案例:电商订单与 API 聚合

原则说明独立异常处理每个任务独立处理异常,避免连锁失败设置超时所有远程调用必须设置超时提供降级非核心功能失败时返回默认值日志追踪记录关键节点,便于排查问题资源隔离不同类型任务使用不同线程池订单处理:并行校验 → 支付 → 并行后续处理API 聚合:并行调用 + 独立超时 + 独立降级批量处理:进度跟踪 + 错误隔离 + 结果汇总重试机制:指数退避 + 熔断器核心思想:将复杂流程拆解为独立任务,并行执行提升效率,独立处理异常保证稳定性。上一篇回顾。

2025-12-29 00:46:52 609

原创 02.02.02 CompletableFuture 组合与异常处理:构建复杂异步流

本文深入探讨了CompletableFuture的组合模式和异常处理机制。主要内容包括: 任务组合模式:介绍了thenCombine合并独立任务、allOf等待所有任务完成、anyOf获取最快结果等组合方法,并提供了通用工具方法和异常处理示例。 异常处理机制:讲解了CompletableFuture的异常传播规则和包装机制,异常会沿链传播直到被处理,最终以CompletionException形式抛出。 文章通过实际场景示例展示了如何构建健壮的异步流程,包括并行任务合并、结果收集、超时控制和异常降级等实用技

2025-12-29 00:44:04 797

原创 02.02.01 CompletableFuture API 入门:告别阻塞式 Future

答案:默认的线程数有限(CPU 核数 - 1),且全局共享。如果有阻塞操作可能导致线程池耗尽,影响其他任务。创建runAsync转换thenApply(扁平化)消费thenAcceptthenRun处理handle(统一处理成功/失败)记住:生产环境务必使用自定义线程池,根据任务类型选择 CPU 线程池或 IO 线程池。下一篇预告:《CompletableFuture 组合与异常处理:构建复杂异步流》我们将深入探讨如何组合多个 CompletableFuture,以及优雅处理异步异常的最佳实践。

2025-12-29 00:42:21 1009

原创 02.04.03 Netty 原理深度解析:事件驱动的高性能网络框架

Netty 原理深度解析:高性能网络框架核心机制 Netty 作为 Java 领域高性能网络框架,采用主从 Reactor 多线程模型实现事件驱动架构。其核心优势包括:1) 简洁 API 封装复杂 NIO 操作;2) 内置事件循环机制(EventLoop)实现高效 IO 处理;3) Pipeline 处理链支持灵活的业务逻辑编排;4) 优化的内存管理(ByteBuf 池化)和零拷贝技术。框架采用 Boss-Worker 线程模型,其中 Boss 线程负责连接接入,Worker 线程处理 IO 操作,通过 S

2025-12-28 01:54:35 548

原创 02.04.02 Reactor 实战教程:响应式编程从入门到精通

本文是一篇Reactor响应式编程实战教程,主要涵盖以下内容: 响应式编程核心概念:介绍了响应式编程的非阻塞、异步、事件驱动特性,对比传统阻塞式编程的性能优势,以及Reactive Streams规范的核心接口。 背压机制深度解析:详细讲解背压的必要性、实现原理和多种策略(BUFFER/DROP/LATEST/ERROR),帮助开发者处理生产者-消费者速度不匹配问题。 Reactor核心API:简要提及将介绍Mono和Flux等核心响应式类型的使用方法。 教程面向具备Java基础的开发者,旨在帮助读者掌握响

2025-12-28 01:51:08 605

原创 02.04.01 Java Stream API 进阶指南:从底层实现到性能优化

Java Stream API 进阶指南摘要 本文深入探讨了Java Stream API的底层实现与性能优化。主要内容包括: Stream Pipeline结构:解析了Source、Intermediate、Terminal三层架构,以及基于AbstractPipeline的惰性求值机制和Sink处理模式。 并行流实现:详细介绍了ForkJoinPool的工作机制和Spliterator的数据分割策略,包括不同数据源的分割特性。 性能优化实践:通过实际测试展示了并行流的性能提升效果,并指出影响性能的关键因

2025-12-28 01:48:08 721

原创 02.04 Java并发编程|Stream、响应式与 Netty 全景对比

本文对比分析了Java并发编程中的三大技术体系:Java Stream、Reactive Streams/Reactor和Netty。首先介绍了Java Stream的底层实现原理,包括流水线结构、并行流机制和性能优化建议。然后深入解析响应式编程的核心概念,涵盖Reactive Streams规范、Reactor实现及背压机制。最后通过Netty架构分析,展示了高性能网络编程的实现方式。文章提供了完整的技术脉络图,比较了三者在数据流模式、背压机制和应用场景的差异,适合具备I/O和网络基础的开发者系统学习高性

2025-12-28 01:05:03 1262

原创 02.03 Java并发编程|Fork/Join 框架与工作窃取

摘要 Fork/Join框架是Java针对计算密集型任务设计的并行处理方案,采用工作窃取算法提升CPU利用率。其核心组件包括ForkJoinPool线程池、RecursiveTask(有返回值)和RecursiveAction(无返回值)。框架通过双端队列实现任务分发:线程从头部取任务(LIFO),空闲线程从其他队列尾部窃取任务(FIFO),减少竞争并提高缓存命中率。实际应用时需注意任务粒度调优,常见模式包括分治求和(RecursiveTask)、批量处理(RecursiveAction)和并行搜索。相比传

2025-12-25 00:17:04 1038

原创 02.02 Java并发编程|CompletableFuture 全攻略

摘要 Java并发编程中的CompletableFuture提供了强大的异步编程能力,相比传统Future具有以下优势: 支持任务组合与管道操作 提供丰富的异常处理机制 采用无锁并发设计(LIFO栈+CAS操作) 支持延迟执行依赖任务 核心实现包括: 状态机管理(未完成/正常完成/异常完成) Completion栈结构实现依赖关系 多种创建方式(completedFuture/runAsync等) 适用于需要异步编排、异常容错的并发场景,是现代Java并发编程的关键工具。

2025-12-25 00:15:26 436

原创 02.01 Java并发编程|并发模型全景

梳理线程模型、线程池、锁与原子类等核心知识,并结合 Java 21 虚拟线程与 Spring Boot 实践,为后续java并发编程博文做铺垫

2025-12-24 02:16:40 991

原创 01.09 Java基础篇|算法与数据结构实战

Java算法与数据结构实战摘要 本文系统介绍了Java中常用的数据结构与算法。核心数据结构包括: 数组与链表:数组适合随机访问(O(1)),链表适合频繁插入删除(O(1)) 栈与队列:栈(LIFO)用于函数调用/括号匹配,队列(FIFO)用于任务调度 树结构:二叉树遍历方式(前序/中序/后序/层序)及其应用场景 重点算法包含: 排序算法:详细实现快速排序(含三路快排优化)、归并排序和堆排序,对比各算法时间复杂度 查找算法:二分查找基础版及查找左右边界的变体实现 本文提供大量Java代码示例,适合准备算法面试

2025-12-24 02:12:25 377

原创 01.08 Java基础篇|设计模式深度解析

Java设计模式深度解析 本文系统讲解了Java设计模式的核心内容,重点分析了创建型模式的实现与应用: 设计原则:SOLID原则(单一职责、开闭原则等) 单例模式: 4种实现方式:饿汉式、懒汉式(双重检查)、静态内部类、枚举 枚举方式最优,防止反射和序列化破坏 应用场景:配置类、连接池、线程池等 工厂模式: 简单工厂、工厂方法、抽象工厂 示例展示了支付策略的工厂实现 建造者模式: 通过链式调用构建复杂对象 示例演示了Computer类的建造过程 这些模式在代码重构、架构设计和面试准备中都有重要应用价值。

2025-12-23 01:28:47 889

原创 01.07 Java基础篇|函数式编程与语言新特性总览

本文系统梳理了Java 8+函数式编程核心特性和JDK 8-25版本演进路线。主要内容包括: 函数式编程基础:Lambda表达式、函数式接口、方法引用、Optional和Stream API等核心概念 JDK版本特性演进:从JDK 8的Lambda到JDK 25计划中的新特性,详细介绍了各版本的语言和平台改进 源码示例解析:通过Stream Pipeline示例深入讲解惰性求值、无状态/有状态操作等实现原理 平台层增强:包括垃圾收集器演进、类加载机制改进和本地互操作API等底层优化 文章为开发者提供了从基础

2025-12-23 01:22:55 647

原创 01.06 Java基础篇|网络编程与协议实践

协议格式设计[魔数(4字节)][版本(1字节)][类型(1字节)][长度(4字节)][数据(N字节)][校验和(4字节)]编解码实现// 编码// 魔数// 版本// 类型// 长度// 数据// 计算校验和// 解码// 数据不完整if (magic!= MAGIC) {throw new IllegalArgumentException("无效的魔数");// 回退// 数据不完整// 验证校验和。

2025-12-22 01:52:11 741

原创 01.05 Java基础篇|I/O、NIO 与序列化实战

摘要 本文深入讲解Java I/O模型(BIO/NIO/AIO)与序列化技术。BIO采用"一连接一线程"模型,存在线程开销大的问题;NIO通过Selector、Channel和Buffer实现非阻塞I/O,底层依赖epoll/kqueue等系统调用实现高效事件驱动。文章对比了不同I/O模型的性能特点,并展示了NIO服务器实现示例。此外,还建立了I/O模型与网络编程(如HTTP/WebSocket实现)和并发编程(如Netty/响应式框架)的关联知识图谱,为后续深入学习高性能网络和并发编程

2025-12-22 01:43:16 315

原创 01.04 Java基础篇|泛型、注解与反射实战

Java泛型、注解与反射实战摘要 本文深入解析Java三大核心特性:泛型、注解与反射。泛型部分详细剖析类型擦除机制,展示编译后类型参数被擦除为Object或上界类型的过程,并指出由此带来的限制。通配符章节重点讲解<? extends T>和<? super T>的特性差异:前者支持安全读取但限制写入,后者允许安全写入但读取受限。通过类型关系图和代码示例,阐明上界通配符适合只读场景,下界通配符适用于写入操作。反射部分虽未展开,但暗示其与注解共同构成运行时动态扩展的基础。全文采用理论解析

2025-12-21 01:26:32 705

原创 01.03 Java基础篇|面向对象核心与设计实践

摘要 本文深入解析Java面向对象编程(OOP)的核心特性,重点探讨封装与不可变对象设计。通过代码示例详细展示了访问控制符的使用、final关键字的三种用法及其重要性。特别强调不可变类必须使用final修饰的原因:防止子类破坏不可变性、避免添加可变状态、提升性能、保证线程安全以及明确设计意图。文章还提供了完整的不可变类设计原则,包括字段final修饰、防御性拷贝和只读访问器等最佳实践。这些知识对于构建安全、高效的Java应用程序至关重要。

2025-12-20 15:19:57 992

原创 01.02 Java基础篇|核心数据结构速查

树类型查找插入/删除适用场景典型应用BSTO(log n) 平均,O(n) 最坏O(log n) 平均,O(n) 最坏教学、简单场景AVLO(log n) 严格O(log n),可能多次旋转查找为主红黑树O(log n) 平均O(log n),最多 3 次旋转插入删除频繁B 树O(log n),树高低O(log n)文件系统ext3、ext4B+ 树O(log n),树高低O(log n)数据库索引选型建议内存数据结构:红黑树(JDK 集合框架)文件系统:B 树。

2025-12-19 23:52:24 603

原创 01.01 Java基础篇|语言基础与开发环境速成

本文是Java基础篇的速成指南,主要面向初学者或需要系统梳理知识的开发者。文章首先解析了JDK/JRE/JVM的层次关系,详细介绍了开发环境配置的最佳实践,包括多版本管理工具SDKMAN!的使用和环境变量设置。随后讲解了Maven项目结构和核心配置,并深入剖析了Java数据类型体系,包括基本类型与包装类型的对比及Integer缓存机制。最后通过String类源码分析了字符串不可变性的设计原理及其优势,并对比了StringBuilder和StringBuffer的线程安全性差异。全文强调理论与实践结合,建议读

2025-12-19 23:41:27 876

原创 FeignClient支持运行时动态指定URL

FeignClient支持运行时动态指定URL

2023-12-28 14:45:10 6843

原创 Linux系统搭建FTP服务器

linux 系统 ftp服务器搭建全过程

2023-03-13 18:18:15 1718

原创 Redis与Spring Cache使用简介

展示了Spring Cache与Redis的使用

2023-01-16 15:08:14 1636 1

原创 Spring事务实践

spring 事务 传播机制

2023-01-11 18:15:39 677

原创 spring-amqp

对spring amqp的一些常用的只是做了简单的介绍如容器、消息转换等

2022-05-13 15:11:42 937

原创 com.rabbitmq:amqp-client

com.rabbitmq:amqp-client开发包的相关说明,涉及到AMQP协议、队列等函数、队列结构、队列设计等内容

2022-04-20 17:33:07 5800

原创 Redis 与 Java API 学习与应用(一)

Redis基本介绍Redis简介高性能键值缓存服务器memcached也经常被拿来与Redis进行比较:这两者都可用于存储键值映射,性能也相差无几,但是Redis能够自动以两种不同的方式将数据写入硬盘,并且Redis除了能存储普通的字符串键 之外,还可以存储其他4种数据结构,而memcached只能存储普通的字符串键。这些不同之处使得Redis可以用于解决更为广泛的问题,并且既可以用作主数据库( primary database)使用,又可以作为其他存储系统的 辅助数据库( auxiliary da

2020-11-24 00:07:41 241

原创 Spring Batch学习与实践(三)

扩展与并行处理多线程Step并行Step远程分块分区健壮的Job重复执行重试

2020-11-22 13:44:08 1234 2

原创 Spring Batch学习与实践(二)

批处理通过Tasklet完成具体的任务,Chunk类型的Tasklet定义了标准的读、处理、写步骤。

2020-11-07 15:51:21 1241

原创 Spring Batch学习与实践(一)

简单介绍核心架构如下所示为Spring Batch的三层架构:应用层、核心层、基础架构层。应用层:包含所有批处理作业,通过Spring框架管理程序员自定义的代码; 核心层:包含Spring Batch启动和控制所需的核心类,如:JobLauncher、Job、Step等。 基础架构层:提供通用的读、写和服务处理。应用场景基本概念Job配置Step配置ItemReader、ItemWriter与ItemProcessorStep FlowJob健壮性并行.

2020-11-01 22:36:09 1235

原创 Easy Rules core包 规则引擎

概述:1、依赖:可以只引入core包即可使用规则引擎;以引入easy-rules-support。支持XOR logic、json描述规则、yaml描述规则。如果要使用SpEL(Spring Expression Language)、MVEL(表达式解析器)则还需要引入easy-rules-spel[4.1.0开始引入]、easy-rules-mvel <dependency> <groupId>org.jeasy</groupId>

2020-09-04 00:03:24 2018

原创 责任链模式-优化系统元数据特殊处理

最近在工作中,涉及到元数据的特殊处理,由于系统需要兼容多级经销商和多组织模式;对于不同的租户类型、不同的业务控制方式、不同的登录用户,同一模块的元数据存在差异。注:此处的【元数据】用于构建前端界面的基本元素,前端调用服务获取元数据后构建界面...

2020-08-25 18:27:14 292

原创 数据库版本管理:springboot + flyway 、shell脚本维护

最近在公司项目中,随着产品的迭代,需要维护数据库表结构、数据升级等问题。最初采用了平台数据库版本维护框架,需要写shell脚本,然后配置rundeck节点实现数据库一键升级。简单的介绍下shell脚本编写思路:首先数据库中,维护一张表history记录数据库版本,类似于flyway的flyway_schema_history表。在history中记录几个关键数据:ex、git-commit-id,DEMO连接:https://github.com/wanghowie/flywaydemo.gi

2020-08-14 00:37:03 939

原创 JAVA程序性能优化--笔记2、设计模式:单例与代理

单例模式单例模式是设计模式中使用最为普遍的模式之一。它是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例。Java语言中,这样的行为能带来两大好处:(1)对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销。(2)由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。最简单的单例实现:public class Singleton { private Sin...

2020-07-23 20:10:30 218

原创 JAVA程序性能优化--笔记1、Java性能调优的相关知识概述

程序的性能通过以下几个方面来表现:执行速度:程序的反映是否迅速,响应时间是否足够短。 内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏。 启动时间:程序从运行到可以正常处理业务需要花费多长时间。 负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓。可以用于定量评测的性能指标有:执行时间:一段代码从开始运行到运行结束,所使用的时间。 CPU时间:函数或者线程占用CPU的时间。 内存分配:程序在运行时占用的内存空间。 磁盘吞吐量:描述I/O的使用情.

2020-07-10 13:59:16 228

pdfbox实现打印功能

这个代码是前段时间要做一个打印功能时,研究了一下pdfbox。发现pdfbox给的demo有很多是可以稍作修改直接拿过来用的。

2016-10-25

scikit-learn学习代码

机器学习python算法库:常用的算法及代码实践,K邻近算法、逻辑回归算法、线性回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA、K-均值算法

2020-11-30

ERmaster_eclipse

ERmaster这是一个好用的eclipse插件对我们数据库的设计很有帮助。详细软件下载可以google收索ermaster下载安装

2013-04-22

powerdesigner16破解文件

直接替换安装目录下的pdflm16.dll即可。本人亲测,没问题。

2017-10-22

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

TA关注的人

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