自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Redis实现分布式锁】

Redis实现分布式锁 案例问题1:单机版没加锁问题2:分布式部署后,单机锁还是出现超卖现象,需要分布式锁问题3:出异常的话,可能无法释放锁,必须要在代码层面finally释放锁问题4:服务器宕机了问题5:设置key+过期时间分开了,必须要合并成一行具备原子性问题6:删除了别人的锁问题7:finally块的判断+del删除操作不是原子性的问题8:确保redisLock过期时间大于业务执行时间的问题综上:单机案例加锁关键逻辑解锁关键逻辑多机案例基于setnx的分布式锁有什么缺点?容错率公式:锁的种类单机

2022-04-23 17:15:12 548

原创 【算法题】一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

2022-03-31 21:14:09 1646

原创 Spring中使用的设计模式

spring中用到的设计模式

2022-03-19 20:34:20 494

原创 Spring的事务传播机制

spring 事务传播机制

2022-03-19 20:30:32 2525

原创 Spring的IOC和AOP

spring IOC AOP

2022-03-19 20:10:51 132

原创 【设计模式】——适配器模式

适配器模式

2022-03-19 19:08:01 272

原创 剑指 Offer 11. 旋转数组的最小数字

算法、旋转数组的最小数字

2022-03-18 16:02:13 112

原创 剑指 Offer 10- II. 青蛙跳台阶问题

算法、青蛙跳台阶问题

2022-03-18 15:42:46 73

原创 剑指 Offer 10- I. 斐波那契数列

算法、斐波那契数列

2022-03-18 15:35:17 135

原创 剑指 Offer 09. 用两个栈实现队列

算法、 用两个栈实现队列

2022-03-18 15:27:23 94

原创 剑指 Offer 07. 重建二叉树

算法、 重建二叉树

2022-03-18 14:59:53 259

原创 剑指 Offer 06. 从尾到头打印链表

算法、从头到尾打印链表

2022-03-18 14:01:44 674

原创 剑指 Offer 05. 替换空格

算法 、替换空格

2022-03-18 13:55:56 65

原创 剑指 Offer 04. 二维数组中的查找

算法、二维数组中的查找

2022-03-18 13:50:27 73

原创 剑指 Offer 03. 数组中重复的数字

算法、力扣

2022-03-18 13:38:58 74

原创 Redis的LRU算法

手写LRU算法

2022-03-18 12:25:15 1121

原创 Redis内存淘汰策略

Redis 缓存淘汰策略

2022-03-17 23:08:16 743

原创 SpringBoot的自动配置原理

springboot 自动装配原理 自动配置

2022-03-16 11:40:36 86

原创 设计模式——模板模式

模板模式模板方法模式基本介绍模板方法模式的原理类图常见的应用场景模板方法模式基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行 它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一 个算法的结构,就可以重定义该算法的某些特定步骤这种类型的设计模式属于类行为型模式。模板方法模

2022-03-15 20:12:19 74

原创 设计模式——观察者模式

设计模式 观察者模式

2022-03-15 19:32:07 78

原创 设计模式——单例模式

设计模式-单例模式 双端检索

2022-03-15 19:02:05 588

原创 【设计模式——职责链模式】

设计模式-职责链模式

2022-03-13 20:10:33 699

原创 synchronized的使用与原理

synchronized的使用与原理实现原理synchronized修饰同步代码块synchronized修饰普通方法synchronized修饰静态方法实现原理JVM 是通过进入、退出 对象监视器(Monitor) 来实现对方法、同步块的同步的,而对象监视器的本质依赖于底层操作系统的 互斥锁(Mutex Lock) 实现。具体实现是在编译之后在同步方法调用前加入一个monitor.enter指令,在退出方法和异常处插入monitor.exit的指令。对于没有获取到锁的线程将会阻塞到方法入口处,直

2022-03-05 13:29:51 277

原创 Mybatis常见面试题

Mybatis 的运行流程通过Resource加载mybatis主配置文件,sqlSessionFactorybiuder构建出sqlSessionFactory对象,通过sqlSessionFactory获取sqlSession对象,获取接口的代理对象,执行增删改查方法。Mybatis的一级缓存二级缓存Mybatis的一级缓存是指Session缓存。一级缓存的作用域默认是一个SqlSession。一级缓存默认开启。也就是在同一个SqlSession中,执行相同的查询SQL,第一次会去数据库进行查

2022-03-05 13:21:12 647

原创 Spring常用注解

spring常用注解

2022-03-05 13:15:09 220

原创 Redis的持久化

Redis的持久化1. RDB(Redis DataBase)RDB备份的执行流程命令save VS bgsave2. AOF(Append Only File)AOF持久化流程Redis 提供了2个不同形式的持久化方式。RDB(Redis DataBase)AOF(Append Of File)1. RDB(Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存里RDB备份的执行流程Redis会单独创建(fork)一个子进程(写时复

2022-03-02 15:30:57 205

原创 synchronize和volatile的区别

synchronize和volatile的区别volatile只能用于修饰变量,synchronize可以用于修饰方法、代码块。随着jdk技术的发展,synchronize在执行效率上会得到较大提升,所以synchronize在项目过程中还是较为常见的;多线程访问volatile不会发生阻塞;而synchronize会发生阻塞;volatile能保证变量在私有内存和主内存间的同步,但不能保证变量的原子性;synchronize可以保证变量原子性;volatile是变量在多线程之间的

2022-02-16 22:20:32 306

原创 Linux常见命令

Linux几个高级命令

2022-02-16 18:56:18 323

原创 Redis与MySQL数据双写一致性

Redis与MySQL数据一致性

2022-02-14 00:30:25 1959

原创 MySQL的主从复制

MySQL数据库的主从复制原理

2022-02-13 22:05:10 284

原创 SpringMVC执行流程

SpringMVC的执行流程

2022-02-13 20:45:21 202

原创 Synchronized和Lock的区别

synchronized与lock的区别

2022-02-13 16:19:29 167

原创 MySQL的存储引擎

MySQL的存储引擎常见的存储引擎有哪些?MyISAM和InnoDB的区别?常见的存储引擎有哪些?InnoDB 引擎:具备外键支持功能的事务存储引擎MyISAM 引擎:主要的非事务处理存储引擎Memory 引擎:置于内存的表Merge引擎:管理多个MyISAM表构成的表集合NDB引擎:MySQL集群专用存储引擎MyISAM和InnoDB的区别?MySQL在5.5之后,采用InnoDB引擎,5.5之前使用MyISAM做默认存储引擎...

2022-02-13 15:08:42 208

原创 线程的状态

线程的状态

2022-02-13 14:16:38 194

原创 【线程池】

线程池参数、线程池运行原理、线程池的拒绝策略

2022-02-13 01:41:39 129

原创 【MySQL事务】

MySQL的事务ACID脏写脏读不可重复读幻读隔离级别

2022-02-13 00:15:57 60

原创 Redis—缓存雪崩、缓存穿透、缓存击穿详解

缓存雪崩、缓存穿透、缓存击穿

2022-02-12 20:02:40 418

原创 【 Java 8 & 11新特性】

Java 8 新特性文章目录Java 8 新特性1.Lambda表达式1.1 语法2.函数式(Functional)接口2.1 java内置的4大核心函数式接口3.方法引用与构造器引用3.1方法引用的使用3.2构造器引用和数组引用4.强大的Stream API4.1 Stream的实例化4.2 Stream中间操作4.3 Stream终止操作5.Optional类6. 其他新特性1.Lambda表达式举例1 @Test public void test1(){ Runnable r1

2022-01-07 18:35:58 346

原创 JUC—CompletableFuture笔记

CompletableFuture笔记1. Future和Callable接口Future接口定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。Callable接口中定义了需要有返回的任务需要实现的方法。应用: 比如主线程让一个子线程去执行任务,子线程可能比较耗时,启动子线程开始执行任务后,主线程就去做其他事情了,过了一会才去获取子任务的执行结果。2. FutureTask本源的Future接口相关架构FutureTa

2022-01-01 02:06:56 498

原创 Java集合原理

Java集合原理ArrayList的底层操作机制源码分析Vector的底层源码\扩容机制LinkedList源码解析HashSet\HashMap的底层源码LinkedHashSet的底层机制TreeSet源码解读TreeMap源码解读

2021-12-31 18:30:30 531

空空如也

空空如也

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

TA关注的人

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