自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(148)
  • 收藏
  • 关注

原创 【Redis】Redis五大数据类型

Redis中String是基础数据类型,支持512MB大值,适用于缓存、计数器、会话共享等场景。其内部编码根据长度和数值类型自动选择int、embstr或raw,提升内存效率。核心命令如set/get、incr、append等实现高效读写,原子操作保障高并发安全。当需频繁修改对象字段时,应优先使用Hash结构,避免全量序列化开销。Hash底层采用ziplist或hashtable,支持灵活的field-value操作,但不支持复杂查询。合理使用命令可显著提升性能与系统稳定性。

2026-10-24 23:27:23 282

原创 【Redis】初识Redis

Redis是高性能内存型NoSQL数据库,支持多种数据结构,具备高并发、低延迟特性。通过单线程+IO多路复用实现高效读写,结合RDB/AOF持久化保障数据安全。广泛应用于缓存、计数器、社交关系等场景,不适用于海量冷数据。生产环境应使用Linux系统及稳定版本(偶数),避免使用keys *等阻塞命令,推荐使用Pipeline、Lua脚本提升性能。

2026-09-19 19:05:30 308

原创 【Redis】服务端高并发分布式架构演进之路

本文系统梳理了互联网系统从单机架构到微服务的六阶段演进过程:从初期单机部署,逐步发展为应用与数据分离、集群负载均衡、主从读写分离、引入缓存优化性能,最终走向业务拆分的微服务架构。每阶段均针对特定瓶颈提出解决方案,强调架构应以业务需求为导向,避免过度设计,核心思想是“问题驱动技术”,实现高效、可扩展的系统建设。

2026-09-16 16:52:03 189

原创 【Spring Cloud】OpenFeign远程调用

观察代码会发现:Feign客户端接口代码,和服务提供者Controller几乎一模一样。jar包由服务提供方维护,消费方只负责调用,这是国内项目主流方案。OpenFeign本质就是帮我们封装了HTTP请求,把Java接口调用翻译成HTTP请求,收到响应再转为Java对象。,打包SpringBoot可执行jar的时候,把system本地jar一并打入。,只需要定义接口,加上注解,就可以完成远程调用,不用手动处理http请求。缺点:接口改动会同时影响消费端和提供端,强耦合。,开启OpenFeign扫描。

2026-09-13 12:30:17 47

原创 【Spring Cloud】Nacos注册中心

Nacos作为微服务核心组件,集注册中心与配置中心于一体,替代Eureka成为国内主流。支持多语言、环境隔离(Namespace)、动态健康检查(临时/永久实例)、负载均衡(权重、集群优先)及配置热更新。通过Spring Cloud Alibaba集成,实现服务自动注册发现、远程调用与配置管理,提升系统可维护性与可用性。

2026-09-12 15:35:20 355

原创 【Spring Cloud】Eureka服务注册发现与LoadBalancer负载均衡

负载均衡LB,当服务多实例部署,按照一定算法,把请求分发到不同实例,分摊服务器压力,提升系统吞吐量与可用性。服务端负载均衡:代表负载均衡器是Nginx。请求统一先到Nginx,Nginx做算法转发。服务清单保存在Nginx服务器。客户端负载均衡:代表负载均衡器Spring Cloud LoadBalancer(旧版Ribbon)。服务清单保存在调用方本地,客户端从注册中心拿到实例列表,本地执行算法选实例,再向服务器发起请求。

2026-09-06 10:20:51 330

原创 【Spring Cloud】认识微服务与工程搭建

分布式架构按照业务拆分之后,会出现重复业务代码,多个系统都需要用户、订单这类通用能力。我们把通用业务抽出来,拆分成粒度更小、职责单一的独立服务,这就是微服务。一个服务只负责单一业务,只做一件事;每个服务独立部署,拥有自己独立数据库;服务之间通过 REST、RPC 进行远程通信;微服务属于分布式架构的子集,是粒度更细、设计更规范的分布式方案。分布式只是要求把系统拆开;微服务强调精细化拆分、专业化分工,分布式不一定是微服务,但微服务一定是分布式。资源。

2026-09-04 21:26:24 306

原创 【Java EE】Spring原理:Bean作用域、生命周期与SpringBoot自动配置

Spring核心是IoC容器,负责Bean的创建与管理。Bean默认单例,也有多例及Web作用域。生命周期分实例化、属性赋值、初始化、使用、销毁五阶段。SpringBoot通过@EnableAutoConfiguration和条件注解实现自动配置,约定大于配置,简化第三方Bean的加载。

2026-08-31 19:02:58 331

原创 【Java EE】认识Linux与项目部署

1991年芬兰大学生Linus受Minix启发开发出Linux第一个版本,顺带开发了至今全球广泛使用的版本控制工具Git。SpringBoot默认8080端口,如果外网访问不了,很大概率是云服务器安全组/防火墙没有放行端口。不同公司/组织封装不同配套软件,就形成不同发行版。Linux是一套操作系统,和Windows属于并列关系,起源可以追溯到Unix。作用:关闭XShell终端窗口,程序依然在服务器后台运行,不会被关闭。进入腾讯云控制台防火墙页面,添加TCP规则,放行项目需要使用的端口。

2026-08-25 16:27:42 266

原创 【Java EE】事务与事务的传播机制

事务是一组数据库操作的集合,不可分割。这一组操作要么全部成功提交,要么全部失败回滚。--开启事务--提交事务,全部操作生效commit;--回滚事务,撤销所有操作rollback;

2026-08-24 15:42:41 193

原创 【Java EE】Spring AOP :面向切面编程

本文摘要: Spring AOP是面向切面编程思想的实现,无需修改业务代码即可增强方法功能,适用于日志统计、权限校验等场景。文章介绍了AOP的核心概念(切点、连接点、通知、切面)和五种通知类型(@Around/@Before/@After等),并通过统计方法耗时的案例演示了具体实现。Spring AOP通过切点表达式筛选目标方法,利用通知实现增强逻辑,具有代码无侵入、消除重复代码等优势。文中还对比了拦截器与AOP的差异,并展示了@Pointcut复用切点表达式的方法。

2026-08-20 00:19:51 227

原创 【Java EE】SpringBoot 统一功能处理

SpringBoot统一处理三大通用后端需求 问题背景 后端开发常面临三类重复性问题:1)接口级权限校验代码冗余;2)响应格式不统一增加前端解析成本;3)异常处理缺失导致原生报错暴露。 SpringBoot解决方案 统一鉴权:通过拦截器实现登录校验,避免每个接口重复判断Session 统一响应格式:使用@ControllerAdvice+ResponseBodyAdvice规范返回结构 全局异常处理:通过@ControllerAdvice+@ExceptionHandler捕获所有异常并友好提示 拦截器核心

2026-08-18 23:57:31 290

原创 【Java EE】MyBatis(二):动态SQL,MBG与MyBatis-Plus

本文摘要: MyBatis动态SQL标签详解与代码生成器应用 MyBatis动态SQL标签 <if>:条件判断,非必填字段有值才拼接SQL <trim>:格式化拼接,处理首尾逗号/关键字(prefix/suffix等属性) <where>:智能查询条件,自动处理WHERE关键字和多余AND <set>:动态更新,只更新非空字段 <foreach>:遍历集合,实现批量操作 <sql>+<include>:SQL片段复用 MyBatis Generator代码生成器 自动生成实体类、Mapper接口和XML映射

2026-08-13 21:38:32 225

原创 【Java EE】MyBatis(一):CRUD

本文介绍了MyBatis框架的核心优势与基础使用方法。主要内容包括: MyBatis优势:简化传统JDBC繁琐操作,自动处理数据库连接、参数绑定、结果映射和资源回收,提升开发效率。 环境搭建: 创建SpringBoot项目并引入MyBatis、MySQL驱动等依赖 准备数据库表结构和对应实体类 配置数据源和MyBatis全局设置(SQL日志、驼峰映射等) 注解开发: 使用@Mapper标记接口 通过@Select/@Insert/@Update/@Delete注解实现CRUD 参数绑定的两种方式

2026-07-25 21:26:16 256

原创 【Java EE】Spring 日志详解

本文系统介绍了SpringBoot日志框架的核心知识点。首先阐述了日志在问题排查、系统监控、数据分析、安全审计等方面的关键作用。其次解析了日志门面模式架构,说明SLF4J作为抽象层的重要意义。然后详细讲解了两种日志打印方式、日志级别划分及配置方法,包括全局设置、持久化存储、自动分割等实用技巧。最后总结了开发生产环境中的最佳实践方案,强调日志标准化、环境适配、敏感信息保护等规范要求。全文为SpringBoot项目日志管理提供了全面的技术指导和优化建议。

2026-07-22 23:57:51 233

原创 【Java EE】Spring Boot配置文件

文章摘要: SpringBoot配置文件解决了硬编码带来的维护问题,支持properties和yml两种格式。yml通过树形缩进结构消除重复前缀,支持对象、集合等复杂数据类型,但格式要求严格。通过@Value和@ConfigurationProperties注解可读取配置,后者适合批量绑定。案例演示了如何结合Hutool工具和yml配置实现图形验证码功能,将验证码参数抽离到配置文件统一管理。

2026-07-21 21:30:38 304

原创 【Java EE】Spring IoC 与 DI

本文主要介绍了Spring框架的核心概念及其组件关系: Spring体系:Spring是底层IoC容器,提供基础能力;Spring MVC专注Web开发;Spring Boot简化配置,实现快速搭建。三者在分层架构中协作处理请求。 IoC控制反转:通过将对象创建与依赖管理交给容器,解决传统开发的高耦合问题。示例展示了从手动new依赖到IoC解耦的演进,突出容器统一管理的优势。 DI依赖注入:作为IoC的实现手段,通过@Autowired动态注入依赖。结合@Component注册Bean,形成自动装配的依赖链

2026-07-20 00:06:33 499

原创 【Java EE】Spring MVC 综合案例与架构设计

摘要:本文介绍了三个基于Spring MVC的综合案例:1)加法计算器,实现两数相加并返回HTML格式结果;2)用户登录系统,包含登录验证和获取当前用户功能,使用Session存储登录状态;3)留言板系统,采用Lombok简化代码,实现留言发布和获取功能。案例涉及前端页面、后端控制器、AJAX交互及Lombok工具的使用,展示了Spring MVC的基础开发流程和常见功能实现方式。

2026-07-18 10:29:55 333

原创 【Java SE】认识JVM:内存区域划分、类加载机制与GC

JVM核心机制与内存管理摘要 Java虚拟机(JVM)通过软件模拟实现跨平台运行,其核心架构包括类加载子系统、运行时数据区、执行引擎和本地接口。内存划分为程序计数器(线程私有)、元数据区(类信息存储)、栈(方法调用)和堆(对象实例),其中堆采用分代模型优化垃圾回收。 类加载机制遵循双亲委派模型(Bootstrap→Platform→Application→自定义加载器),但JDBC等场景通过线程上下文类加载器打破该规则。类生命周期包含加载、连接、初始化等阶段。 垃

2026-07-10 15:56:30 285

原创 【Java SE】文件操作与IO流

文章摘要: 文件系统是计算机存储管理的核心机制,将硬盘数据抽象为文件和目录。Java通过File类操作文件元数据(路径、权限等),但不支持内容读写。文件读写需使用IO流体系:字节流(InputStream/OutputStream)处理所有文件类型,字符流专用于文本文件。FileInputStream读取文件时需注意资源释放,推荐使用try-with-resources语法自动关闭流。文件操作涉及路径处理(绝对/相对路径)、状态判断和目录遍历等功能,是编程中基础且重要的技能。

2026-07-09 16:23:40 351

原创 【Java SE】多线程(四):认识锁策略、CAS机制与JUC

本文摘要:文章系统介绍了多线程并发中的常见锁策略及Java实现,包括乐观锁与悲观锁、轻量级锁与重量级锁、自旋锁与挂起等待锁等核心概念,深入剖析了synchronized的锁升级机制和优化策略。详细讲解了CAS原理及其在原子类和自旋锁中的应用,并指出ABA问题及解决方案。最后介绍了JUC包中的Callable、FutureTask等并发工具类,为Java多线程开发提供全面指导。

2026-06-19 10:55:09 331

原创 【Java SE】多线程(三):单例模式,阻塞队列,线程池与定时器

摘要 单例模式是保证类全局唯一实例的设计模式,分为饿汉式(类加载即创建)和懒汉式(首次调用创建)。懒汉式需解决线程安全问题,通过双重检查锁+volatile确保线程安全与性能。阻塞队列是线程安全的队列,支持生产-消费模型,能解耦系统组件并平衡负载,Java提供多种实现如LinkedBlockingQueue。生产-消费者模型通过队列缓冲实现解耦与削峰填谷,但会增加系统复杂度。典型应用包括数据库连接池、日志系统等需资源管控的场景。

2026-06-14 12:30:51 415

原创 【笔试强训】Week7:旋转字符串,天使果冻,dd爱旋转,小红取数,最少的完全平方数,合唱队形,宵暗的妖怪,过桥,小红的子串

本文总结了4道算法题的解题思路与代码实现: 旋转字符串:通过将字符串A重复一次,检查B是否为子串来判断是否为旋转结果。 天使果冻:采用动态规划预处理前i个数的最大值和次大值,快速回答查询。 dd爱旋转:将180°旋转分解为行列对称操作,统计操作次数后统一处理矩阵变换。 小红取数:基于同余原理的01背包问题,状态转移时维护模k余数对应的最大和。 所有解法均通过预处理或数学规律优化时间复杂度,代码实现清晰高效。

2026-06-11 18:12:36 204

原创 【贪心算法】整数替换,俄罗斯套娃信封问题,可被三整除的最大和,距离相等的条形码,重构字符串

本文介绍了四道LeetCode题目的解题思路和代码实现: 整数替换(LC 397):给出两种解法,递归+记忆化搜索(利用备忘录记录操作次数)和贪心算法(通过二进制分析奇偶性优化操作)。 俄罗斯套娃信封问题(LC 354):转化为最长递增子序列问题,动态规划解法可能超时,推荐贪心+二分法,需注意排序规则(左端点升序,右端点降序)。 可被三整除的最大和(LC 1262):计算总和后,根据余数情况删除最小数或两个次小数,确保和能被3整除。 距离相等的条形码(LC 1054)(未提供完整解析)。 每道题均附代码示例

2026-06-02 14:27:08 293 2

原创 【贪心算法】加油站,单调递增的数字,坏了的计算器,合并区间,用最少数量的箭引爆气球

本文总结了LeetCode上几道关于贪心算法的题目,包括加油站、单调递增数字、坏的计算器、合并区间和无重叠区间。解题思路主要围绕贪心策略展开:对于加油站问题,通过比较油量差寻找可行起点;单调递增数字采用递归调整数字位置;坏的计算器采用逆向思维;合并区间按左端点排序后处理重叠;无重叠区间则优先保留右端点小的区间。这些题目展示了贪心算法在不同场景下的灵活应用,通过局部最优解逐步达到全局最优。

2026-05-30 20:59:26 334

原创 【笔试强训】Week6:活动安排,合唱团,跳台阶的扩展问题,字符串的排列,kotori和迷宫,春游

本文包含四个算法题解: 活动安排:使用贪心算法,按左端点排序后遍历,选择不重叠且右端点较小的活动。时间复杂度O(nlogn)。 合唱团:动态规划问题,维护最大/最小乘积表。状态转移考虑前i人中选j人,需满足间隔d的限制。时间复杂度O(nkd)。 跳台阶扩展:动态规划/找规律题。发现规律f(n)=2^(n-1),可用递推或公式直接求解。 字符串排列:DFS+剪枝。先排序字符串,处理重复字符时通过访问标记避免重复排列。时间复杂度O(n!)。 核心解法包括贪心、动态规划(状态转移)、DFS剪枝等经典算法思想,涉及

2026-05-30 14:47:19 199

原创 【贪心算法】最长回文串,增减字符串匹配,分发饼干,最优除法,跳跃游戏

本文总结了6道LeetCode贪心算法题目的解题思路和代码实现。包括最长回文串(统计字符频率)、增减字符串匹配(双指针填数)、分发饼干(排序+双指针)、最优除法(数学推导)、跳跃游戏II(动态规划/贪心策略)和跳跃游戏(贪心判断可达性)。每道题目都提供了清晰的解题思路和对应的Java代码实现,涵盖了贪心算法的常见应用场景,如字符串处理、数组操作和游戏策略等。这些解法都体现了贪心算法"局部最优解导向全局最优解"的核心思想。

2026-05-24 17:00:07 388

原创 【贪心算法】最长连续递增序列,买卖股票的最佳时机,K次取反后最大化的数组和,优势洗牌

固定i指针,让j指针向后走,直到不递增,统计i,j之间的长度,返回最大值。由于没有交易次数限制,只需要在价格上升的时候卖出,再买入当天的,统计收益。方法一:利用二元组pair<int,String>,对这个数组排序。方法二:利用hashMap记录身高与名字的映射关系,根据身高排序。Arrays.sort传入的比较方法必须是引用类型数据。需要记录姓名与身高的映射关系,再对身高进行排序。利用大根堆,每次把最小的数填上负号。以上两种方法空间开销很大。

2026-05-23 22:19:56 341

原创 【动态规划】背包问题:完全背包,二位费用的背包问题,似包非包

本文介绍了完全背包问题的两种变体及其解法。第一种是背包可以不装满的情况,通过动态规划计算前i个物品在总体积不超过j时的最大价值,状态转移方程为dp[i][j] = max(dp[i-1][j], dp[i][j-v[i]]+w[i])。第二种是背包必须装满的情况,需要额外处理无法恰好装满的情况。文章还提供了空间优化方案,利用滚动数组降低空间复杂度。最后以零钱兑换问题为例,展示了如何应用完全背包思想求解最小硬币数问题,给出了相应的动态规划实现代码。两种问题的解法都强调了状态转移方程的设计和边界条件的处理。

2026-05-23 17:30:18 817

原创 【笔试强训】Week5:空调遥控, kotor和气球,走迷宫,主持人调度II,体操队形,二叉树的最大路径和,排序子序列,消减整数

本文摘要了三道算法题的解题思路和代码实现: 空调遥控问题:通过排序数组后使用滑动窗口或二分查找,找到满足温度差不超过2p的最大连续区间。滑动窗口解法时间复杂度为O(n log n)。 kotori和气球问题:排列组合问题,第一个气球有n种选择,后续每个有n-1种选择,结果对109取模。 走迷宫问题:使用BFS求最短路径,处理输入时注意下标从1开始,遇到目标点时立即返回当前步数。 主持人调度问题未提供具体内容。各题解均包含Java代码实现,展示了不同算法思想的应用。

2026-05-22 20:29:52 391

原创 【贪心算法】柠檬水找零,将数组和减半的最少操作次数,最大数,摆动序列, 最长递增子序列,递增的三元子序列

本文介绍了贪心算法及其应用,通过5个LeetCode题目展示了贪心策略的实现: 柠檬水找零:通过优先使用大额钞票的策略处理找零问题,确保5元钞票充足。 数组减半操作:使用大根堆每次处理最大元素,快速减少数组总和。 最大数拼接:通过自定义字符串比较规则,将数字拼接成最大数值。 摆动序列:统计波峰波谷数量确定最长摆动子序列长度。 递增子序列:维护最小末尾数组,利用二分查找优化查找过程。 这些题目展示了贪心算法"局部最优→全局最优"的核心思想,同时强调了正确性证明的重要性。每个解法都配有Java实现代码,涵盖了数

2026-05-20 19:23:31 582

原创 【动态规划】01背包问题:01背包,分割等和子集,目标和,最后一块石头的重量

01背包问题核心思路是"选或不选"物品,通过动态规划求解最大价值。解题方案包括两种状态表示:不超过体积j或恰好为j的最大价值。优化方法利用滚动数组减少空间复杂度。分割等和子集问题可转化为01背包,判断能否选出和为sum/2的子集。两种问题都通过填表法实现,初始化时需处理边界条件,最终输出结果取决于能否找到符合条件的解。

2026-05-16 16:48:36 450

原创 【动态规划】两个数组的dp问题:最长公共子序列,不相交的线,不同的子序列,通配符匹配,正则表达式匹配,交错字符串,两个字符串的最小ASCII删除和,最长重复子数组

本文总结了4道动态规划相关的LeetCode题目解法: 最长公共子序列(LC 1143):使用二维dp数组,状态转移根据字符是否相等分为两种情况,时间复杂度O(mn)。 不相交的线(LC 1035):本质是最长公共子序列问题,解法与LC 1143相同。 不同的子序列(LC 115):计算s中包含t子序列的个数,状态转移考虑包含/不包含当前字符两种情况。 通配符匹配(LC 44):处理包含'?'和''的模式匹配,''可匹配任意长度子串,通过优化将时间复杂度从O(n³)降至O(n²)。 正则表达式匹配(LC 1

2026-05-15 23:10:04 419

原创 【Java SE】多线程(二):线程安全、synchronized、volatile与wait/notify详解

本文介绍了Java多线程中的线程安全问题及解决方案。主要内容包括: 线程不安全现象:多个线程同时操作共享数据导致数据错乱,如计数器案例结果小于预期值 线程不安全原因:原子性缺失(操作被拆分打断)、可见性缺失(数据更新互相看不见)、有序性缺失(指令被乱序优化) synchronized解决方案:通过互斥锁保证原子性、可见性和有序性,介绍了三种使用方式(代码块、实例方法、静态方法) 其他相关内容:死锁的构成条件与避免方法、Java标准库中的线程安全类 volatile关键字:解决内存可见性问题 文章通过代码示例

2026-05-12 22:49:00 491

原创 【动态规划】回文串问题:回文子串,最长回文子串,分割回文串,最长回文子序列,让字符串成为回文串的最小插入次数

本文总结了5道回文字符串相关的动态规划题目,包括回文子串计数、最长回文子串、回文串分割等问题。解题思路均采用动态规划方法,通过构建二维dp数组记录子串是否为回文串或最长回文子序列长度。关键点在于状态转移方程的设计:当首尾字符相同时,根据子串长度不同情况进行处理;不相同时则进行相应判断。填表顺序需注意从下往上填写,以正确处理状态依赖关系。每道题目都给出了对应的Java代码实现,展示了如何将动态规划思想转化为具体解决方案。这些题目展现了动态规划在处理回文相关问题时的通用性和高效性。

2026-05-10 16:09:40 400

原创 【笔试强训】Week4:小易的晋升之路,非对称之美,小葱的01串,最长回文子序列,装箱问题

本文包含三道编程题的解题思路与代码实现: 小易的晋升之路:通过模拟和最大公约数计算解决。使用辗转相除法高效计算GCD,根据条件更新初始值x。时间复杂度取决于输入规模。 非对称之美:采用贪心策略判断字符串是否为回文。若全相同字符返回0,若回文但非全相同返回n-1,否则直接返回n。时间复杂度O(n)。 小葱的01串:使用滑动窗口处理环形字符串。统计0/1数量,窗口大小为n/2,满足条件时结果+2。时间复杂度O(n)。 三题均通过合理算法优化,避免了暴力解法可能导致的性能问题。

2026-05-09 22:04:01 235

原创 【动态规划】子序列问题:最长递增子序列,摆动序列,最长递增子序列的个数,最长数对链,最长定差子序列,最长的斐波那契子序列长度,最长等差数列,等差数列划分

这篇文章总结了4道关于子序列问题的动态规划解法: 最长递增子序列(LC 300):使用dp[i]表示以i结尾的最长递增子序列长度,通过双重循环比较元素大小来更新dp数组,最终返回最大值。 摆动序列(LC 376):需要维护两个数组f[i]和g[i]分别表示上升和下降趋势的最长子序列长度,通过比较相邻元素的大小关系来更新状态。 最长递增子序列个数(LC 673):在最长递增子序列基础上,额外使用count数组统计个数,通过比较长度来累计符合条件的序列数量。

2026-05-07 17:01:48 384

原创 【MySQL】JDBC编程

JDBC是Java提供的数据库操作接口标准,用于连接数据库、执行SQL和处理结果。它采用面向接口编程,支持多种数据库,是ORM框架的基础。核心API包括DriverManager(传统连接)、DataSource(连接池)、Connection、Statement和ResultSet。通过PreparedStatement可防止SQL注入攻击。开发需配置Maven阿里云镜像并引入MySQL驱动依赖。完整示例展示了使用DriverManager和DataSource两种方式查询数据库的代码实现,后者通过连接池

2026-05-04 15:57:27 473

原创 【MySQL】事务 & 用户与权限管理

事务就是把一组 SQL 打包成一个不可分割的整体:要么全部成功,要么全部失败,允许只执行一半。举个例子:银行转账张三余额 -100李四余额 +100如果第一步成功、第二步失败,钱就“凭空消失”了。事务就是用来杜绝这种灾难的。MySQL服务可以同时被多个客户端访问,每个客户端执行的DML语句是以事务为单位,那么不同的客户端都同一张表的同一条数据进行修改的时候可能出现相互影响的情况。为了保证不同的事务之间执行过程不受影响,那么事物之间需要相互隔离,这种特性就是隔离性。

2026-05-03 16:04:30 481

原创 【笔试强训】Week3:重排字符串,分组,DNA序列,01背包

本文介绍了三个算法题的解题思路与实现代码。第一个是字符串重排问题,使用贪心算法处理字符频率,确保相邻字符不同;第二个是分组问题,通过哈希统计和二分查找确定最优分组方案;第三个是DNA序列问题,采用滑动窗口技术查找特定子串。每个问题都提供了清晰的解题思路和对应的Java代码实现,涵盖了贪心算法、二分查找和滑动窗口等常见算法技巧。

2026-05-02 22:02:53 373

空空如也

空空如也

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

TA关注的人

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