05 2022 档案
关于ThreadLocal最直白的解释
摘要:ThreadLocal 底层原理如下: 实线是强引用,虚线是弱引用 Thread 持有 ThreadLocal 对象的引用,ThreadLocalMap 是 Thread 的成员变量,它是一个 Map,key 是 ThreadLocal 对象, value 是我们 set 进去的值 和 Map 一样
MVCC(多版本并发控制)详解
摘要:在 MySQL InnoDB存储引擎下,RC、RR 基于 MVCC 进行并发事务控制, MVCC 是基于“数据版本”对并发事务进行访问 用一个例子来解释一下,下面是一张事务执行流程图: 稍微解释一下: 事务 A 将 id=1088 的记录的 name 改为 “张三”,并提交 事务 B 将 id=10
每日一题(2022-5-24):经典搜索算法
摘要:题目 给定一个文件目录的路径,统计这个目录下所有的文件数并返回 分析 这道题很容易想到深搜或者广搜,不仅考察了对搜索算法的应用,还考察了对文件的操作,这道题在面试的时候还是很常见的 直接看代码吧,边看注释边讲。 代码 深度搜素: public static int dfs(String folder
我使用Spring AOP实现了用户操作日志功能
摘要:我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 首先想到的就是在每个方法中,去实现记录的逻辑,但是这样做肯定是不现实的,首先工作量大,其次违背了软件工程设计原则(开闭原
SpringBoot自定义拦截器(多个拦截器)
摘要:在 Spring Boot 中要实现自定义拦截器需要实现 HandlerInterceptor 接口,并重写 preHandle、postHandle 和 afterCompletion 方法: import org.springframework.stereotype.Component; imp
浅谈Java-String到底是值传递还是引用传递?
摘要:参数传递 如果你学过 **C/C++**应该很好理解,就是所谓的 "值传递" 和 "指针传递" 首先声明一点:Java 中的参数传递,只有值传递,没有所谓的引用传递。 所谓的这个值,就大有学问了,主要分为了两种类型:基本数据类型和对象 基本数据类型 众所周知,Java 有 8 种基本数据类型,分别是