自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 23种设计模式自我探索之建造者模式

23种设计模式自我探索建造者模式

2020-07-04 16:43:35 108

原创 Collectors.toMap你真的会用吗?

按照常规思维,往一个map中put一个已存在的key,会把该key对应的value值覆盖,然而通过实践发现,对于java8中Collectors.toMap并不是这样,而是直接抛出了异常。日常开发中,常常会使用到StreamAPI,平时没有注意该处存在的“坑”的话,上线生产环境后,很有可能会出现某类值收集时出现重复值,从而导致生产事故发生。即,如果old值不为空,则执行传进来的方法,即throwingMerger(),抛出异常。因为传入的 HashMap::new,所以查看HashMap的merge方法,

2023-01-11 14:31:03 809 1

转载 分布式锁实现方案

分布式锁实现方案:1.数据库 2.Redis 3.Zookeeper

2023-01-11 11:37:38 161

转载 Redis 集群的3种方式及其优缺点

Redis 集群分类:1.主从复制 2.哨兵模式 3.集群模式

2023-01-11 11:26:00 1591

原创 二倍均值法计算红包金额

二倍均值法:假设红包总金额是X,红包个数为Y,每个红包的最低金额是0.01元那么每次抢到的红包金额的范围在 (0.01, (X/Y) *2) 之间。即:每次运算时,在0.01 ~ (剩余金额 / 剩余个数 * 2) 的范围内随机取值也就是最大值为:0~100的随机值 / 100*(剩余金额 / 剩余个数 * 2)

2023-01-11 10:00:00 1255

原创 ThreadPoolExecutor 线程池工作原理

1.运行的线程数小于 corePoolSize,立即创建线程执行任务2.运行的线程数大于或等于 corePoolSize,则任务放入队列3.队列满了,而且正在运行的线程数量小于maximumPoolSize,则创建非核心线程立刻运行任务4.队列满了,而且正在运行的线程数量大于或等于maximumPoolSize,那么线程池会抛出异常,走拒绝策略5.线程完成任务时,会从队列中取下一个任务执行6.当线程无事可做,超过 keepAliveTime 时,若线程数大于 corePoolSize,则回收

2023-01-10 17:24:21 143

原创 Spring Bean 的生命周期

Spring Bean 的生命周期:1.扫描元数据信息封装成BeanDefinition存入BeanDefinitionMap 2.遍历Map 3.实例化对象 4.属性填充 5.Aware接口的实现 6.初始化前 7.初始化 8.初始化后 9.销毁

2023-01-10 14:41:55 64

原创 Redis为什么这么快

Redis 存储为什么那么快?1.完全基于内存 2.数据结构简单,是专门设计的数据结构 3.单线程 4.多路复用I/O 5.底层模型不同

2023-01-10 11:40:19 56

空空如也

空空如也

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

TA关注的人

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