- 博客(93)
- 收藏
- 关注
原创 ES基础入门
本文介绍了Elasticsearch的核心架构概念和基本操作。架构部分包括:集群(Cluster)由多个节点组成,节点(Node)分为主节点、数据节点等类型,分片(Shard)包括主分片和副本分片。基本概念涵盖文档(Document)和字段(Field),索引(Index)和映射(Mapping)。操作部分详细说明了索引库的创建、查询、修改和删除,以及文档的新增、查询、删除和修改(全量和增量)方法。全文提供了Elasticsearch的完整操作指南。
2025-12-22 11:09:33
206
原创 Git常用命令
本文介绍了Git的基础操作指南,主要包括6个核心内容:1)用户信息配置方法;2)仓库初始化与克隆操作;3)文件提交与历史查看;4)分支创建、切换与合并;5)远程仓库的拉取与推送;6)撤销修改与重置提交的各种方式。文章通过具体命令示例详细说明了Git的常用工作流程,包括全局/局部配置、基础版本控制、分支管理、团队协作以及错误修正等场景下的操作方法,帮助开发者快速掌握Git的核心功能。
2025-11-19 09:55:09
251
原创 DDD(领域驱动设计)基础知识体系
本文介绍了领域驱动设计(DDD)的核心概念与方法论。DDD是一种关注复杂业务领域的软件开发思想,通过战略设计(领域、子域、界限上下文)和战术设计(实体、值对象、聚合、领域服务等构建模块)来组织系统架构。重点阐述了8个关键战术设计模式:实体(唯一标识的可变对象)、值对象(不可变的属性集合)、聚合(一致性边界)、聚合根(访问入口)、领域服务(跨聚合操作)、领域事件(业务状态变化)、仓储(持久化抽象)和工厂(复杂对象创建)。这些模式共同构成了DDD的核心实践框架,帮助开发者构建高内聚、低耦合的业务模型。
2025-11-17 15:08:15
937
原创 Mysql多表查询
从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留.:左表 [inner] join 右表 on 左表.字段 = 右表.字段;条件字段就是代表相同的业务含义(如my_student.c_id和my_class.id): 没有on之后的内容,这个时候系统会保留所有结果。
2025-11-17 10:26:19
489
原创 Java内存模型——JMM
JMM(Java内存模型)是Java定义的并发编程规范,用于解决多线程环境下的数据一致性问题。它通过抽象主内存(存储共享变量)和线程本地内存(存储变量副本)的概念,规定了线程间通信的八种同步操作(如read/write等)。JMM保证了三大特性:原子性(基础操作)、可见性(volatile/synchronized实现修改同步)和有序性(禁止指令重排序)。happen-before原则进一步确保了操作顺序。JMM的跨平台设计屏蔽了系统差异,通过内存屏障等技术实现线程安全,既简化了多线程编程,又增强了程序可移
2025-09-26 15:51:56
691
原创 Java虚拟机——垃圾回收算法
JVM垃圾回收机制采用分代收集策略,针对不同内存区域使用不同算法。新生代使用复制算法(适合低存活率场景),老年代采用标记清除/压缩算法(适合高存活率对象)。各算法特点:复制算法效率高但浪费空间,标记清除会产生碎片,标记压缩耗时但内存利用率高。实际应用中需要根据对象存活率选择最适合的算法组合,没有绝对最优的解决方案。GC机制通过这种分代策略平衡了内存效率、利用率和系统性能。
2025-09-24 15:14:58
238
原创 Java虚拟机——JVM
JVM是Java虚拟机,负责将字节码转换为机器码以屏蔽操作系统差异。类加载器采用双亲委派机制动态加载类。JVM运行时数据区包括:程序计数器(线程执行指示器)、方法区(存储类信息、常量等,JDK8后改为元空间)、栈(线程私有,存储方法调用和局部变量)以及堆(存放对象实例,分为新生代、老年代)。本地方法栈用于处理Native方法调用。堆内存不足会引发OOM错误,垃圾回收主要在新生代和老年代进行。
2025-09-20 15:42:41
868
原创 分布式锁详解
分布式锁是协调分布式系统互斥访问共享资源的机制,需满足互斥、高可用和可重入等基本条件。其应用场景包括防止超卖、避免重复处理任务和保证数据一致性等。常见实现方式包括:基于MySQL的悲观锁/乐观锁(性能较差)、基于Redis的SETNX和Redission(性能高,支持锁续期和可重入)以及基于ZooKeeper的临时顺序节点(可靠性最高,利用监听机制)。三者对比中,ZooKeeper的可靠性最佳但实现复杂,Redis性能最优但需处理续期问题,数据库方案则简单但性能最差。选择时需根据实际场景权衡性能与可靠性。
2025-09-11 15:57:40
984
原创 背包问题详解
本文介绍了背包问题的三种经典模型(0/1背包、完全背包、多重背包)及其解法。0/1背包通过动态规划解决,核心是状态转移和空间优化;完全背包采用正序循环实现无限次使用;多重背包使用二进制优化。文章以"数组平分"和"零钱兑换"为例,详细解析了0/1背包和完全背包的实现思路,包括状态定义、转移方程、初始化和剪枝优化,并提供了对应的Java代码实现。两种问题都通过将原问题转化为背包问题,利用动态规划高效求解。
2025-09-11 11:13:42
261
原创 Mysql索引
摘要:索引是数据库优化查询性能的数据结构,类似书籍目录,能快速定位数据。索引可提高查询效率、优化排序分组、实现唯一约束。主要类型包括主键索引、唯一索引、普通索引、联合索引等。适用场景:有唯一性限制的字段、常用作查询条件的字段、排序分组字段。不适用场景:数据量少、字段重复值多、频繁更新的字段。使用EXPLAIN分析SQL执行计划可优化查询。常见索引失效情况包括模糊查询、使用函数、表达式计算、类型转换、违反最左匹配原则、OR条件组合不当等。
2025-08-22 11:25:37
745
原创 Mysql事务特性
摘要:MySQL事务的四大特性(ACID)通过不同机制实现:原子性由undolog保证,记录操作前的数据用于回滚;持久性通过redolog实现,采用顺序写提高性能;隔离性通过MVCC或锁机制实现,解决脏读、不可重复读和幻读问题;一致性由前三者共同保证。MySQL默认自动提交事务,异常时通过undolog回滚。redolog采用WAL技术,先写日志再异步刷盘。隔离级别包括读未提交、读已提交、可重复读(默认)和串行化,通过ReadView控制事务可见性。MVCC利用版本链管理并发事务的数据访问。
2025-08-21 14:54:59
740
原创 Java—注解
本文介绍了Java注解的基本概念和应用实现。注解是Java5引入的特殊注释,本质是继承Annotation的接口,通过@Target、@Retention等元注解定义作用范围和生命周期。文章重点演示了如何创建并解析自定义注解:1)定义@EncryptMethod注解标记需要加密的字段;2)通过AOP切面实现注解解析,使用反射获取字段值并进行AES加密处理;3)切面支持方法参数、返回值及集合类型数据的加密。该实现展示了注解在数据安全领域的典型应用模式,包括编译期扫描和运行期反射处理两种解析方式。
2025-08-15 13:30:36
264
原创 Java—CompletableFuture 详解
摘要:CompletableFuture是Java8引入的异步编程工具,扩展了Future功能,支持回调处理和任务编排,避免了回调地狱问题。它实现了Future和CompletionStage接口,提供supplyAsync、runAsync等方法创建异步任务,并通过thenApply、thenAccept等方法处理结果。相比传统Future,CompletableFuture支持更灵活的链式调用和异常处理,是Java异步编程的重要工具。
2025-08-14 17:07:30
528
原创 Java—CAS操作
摘要: CAS(Compare-And-Swap)是无锁编程的核心技术,通过比较内存值(V)与预期值(A)决定是否原子更新为新值(B)。Java通过Unsafe类的compareAndSwap方法实现CAS,底层依赖CPU指令(如cmpxchg),但需谨慎使用以避免内存安全问题。典型应用如JUC包的原子类(如AtomicInteger),通过自旋确保操作成功。CAS存在三大问题:1)ABA问题(值被多次修改后复原,可通过版本号解决);2)自旋开销(长时间竞争消耗CPU);3)单变量限制(多变量需封装为对象,
2025-08-11 15:25:58
898
原创 分布式锁的三种实现方式
分布式锁是分布式系统中控制共享资源访问的同步机制,确保同一时间只有一个进程能执行关键操作。主要实现方式包括:1)基于MySQL的实现,通过唯一索引或行锁机制,简单但存在单点问题和性能瓶颈;2)基于Redis的实现,利用SETNX命令和Redission框架,支持自动续期、可重入等特性,性能较高;3)基于Zookeeper的实现,依靠临时顺序节点和监听机制,可靠性强但性能较低。选择方案时需权衡可靠性、性能和实现复杂度,Zookeeper适合高可靠场景,Redis适合高并发需求,MySQL方案则适用于简单场景。
2025-08-08 11:06:47
1044
原创 Java反射
本文介绍了Java反射机制及其应用场景。反射允许程序在运行时动态访问和操作类、方法、字段等信息,广泛应用于框架开发中。重点分析了反射在Spring框架中的两大核心应用:IoC(控制反转)通过反射实现依赖注入,降低对象耦合度;AOP(面向切面编程)则利用反射实现动态代理,在方法调用前后添加额外功能。文章详细阐述了三种依赖注入方式(接口注入、setter注入、构造函数注入)的实现原理,并通过代码示例展示了反射在动态代理中的具体应用。通过反射机制,Spring等框架实现了灵活的对象管理和功能扩展。
2025-08-05 13:59:56
788
原创 微服务常用的基础知识
【摘要】本文系统介绍了微服务架构中的核心组件及其应用,涵盖服务发现、配置管理、流量控制、分布式事务、消息队列等关键技术。主要内容包括:1)Nacos的服务注册发现和动态配置管理机制;2)Sentinel的流量控制和熔断降级功能;3)Seata的分布式事务解决方案;4)RabbitMQ的消息队列模型;5)SpringCloud Gateway的API网关实现;6)MongoDB的非关系型数据库特性;7)RBAC权限控制模型;8)ELK日志分析技术栈;9)Feign的HTTP客户端调用;10)Git版本控制常用
2025-06-26 18:01:59
798
原创 RuoYi-Cloud
RuoYi-Cloud 是一个 Java EE 分布式微服务架构平台,基于经典技术组合(Spring Boot、Spring Cloud & Alibaba、Vue、Element),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源。
2025-05-13 16:53:24
1951
原创 论文笔记——BiLLP框架
Large Language Models are Learnable Planners for Long-TermRecommendation论文阅读笔记
2025-03-17 20:01:41
821
1
原创 SpringBoot+Redis+Mybatis-plus黑马点评
SpringBoot+Redis+Hutool+Mybatis-plus实现黑马点评
2025-03-01 20:02:15
977
原创 SpringBoot+Redis+Mybatis苍穹外卖
SpringBoot+Vue+Mybatis+Mysql+Redis+Nginx实现苍穹外卖
2025-02-20 19:18:25
734
原创 智能交通(8)——腾讯开悟智能交通信号灯调度赛道
本文档用于记录参加腾讯开悟智能信号灯调度赛道的模型优化过程。官方提供了dqn和target_dqn算法,模型的优化在官方提供的代码基础上进行。
2024-12-05 21:31:40
1693
1
原创 论文笔记——Graph Bottlenecked Social Recommendation
论文精度及其代码复现——Graph Bottlenecked Social Recommendation
2024-09-27 09:18:58
1672
1
原创 智能交通(7)—Deep-QLearning-Agent-for-Traffic-Signal-Control
A framework where a deep Q-Learning Reinforcement Learning agent tries to choose the correct traffic light phase at an intersection to maximize traffic efficiency.
2024-08-09 13:31:29
876
原创 智能交通(3)——Learning Phase Competition for Traffic Signal Control
提出了一种新的基于强化学习的交通信号控制模型设计框架FRAP
2024-07-06 14:56:27
1345
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅