- 博客(5)
- 收藏
- 关注
原创 java8 ConcurrentHashMap源码&原理解读,保姆级解读ο(=•ω<=)ρ⌒☆,并行/并发编程思想(持续更新)
前言之前研读过HashMap源码,实现过一遍HashMap源码。但是HashMap是线程不安全的,而ConcurrentHashMap是线程安全的,博主我觉得自己多线程方面差了点,遂决定去研究一番ConcurrentHashMap。这一看,emmm,妙呀,有时一个方法起码得研究好几天,打开一篇知识的海洋。笔者去年终于看完整个put方法的处理,〒▽〒,实现到扩容那里了。后面由于换工作,面试,这事就...
2020-05-03 19:03:10
689
1
原创 自己使用cglib/jdk动态代理实现@Transaction注解(事务管理+事务传播行为)
掘金地址前言为什么重复造轮子? 这个轮子是我去年就造了的,当时在上个东家做的是金融相关的,重视数据的一致性。我踩过一个坑(ノへ ̄、),导致我特别想知道这个spring 事务管理怎么做的。原因一 有一次。博主我负责的一个产品其中一个业务,主要用户使用道具,银行将资金从平台转到用户账上,银行处理成功后,发送MQ消息给我们平台;博主妹子我,写了一个幂等接口,也加了@Transaction(...
2020-03-29 23:29:34
1297
3
原创 KMP字符匹配算法原理
简介:KMP算法是一种改进的字符匹配算法。由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。 它的核心思想是,通过一个next[]数组,在匹配失败后,减少字符移动的距离,达到快速匹配的目的。要想彻底理解KMP算法,必须要知道几个核心概念: 最长相同前后缀:即从前往后找,从后往前找,相同前后缀中最长的字符串。 Nex...
2020-03-29 14:12:36
196
原创 红黑树原理和算法,超详细介绍(图,内附实现代码)
掘金链接二叉搜索树普通的二叉搜索树,如果是一颗平衡的二叉树。则n个节点查找的时间复杂度为O(log2n),近似折半查找。如果二叉搜索树完全不平衡,则会退化为一条链表它的时间复杂度为O(n)。因此为了解决这个问题,出现了avl树(自平衡二叉树)。嗯,它不重要,不是我要讲的重点。(~ ̄▽ ̄)~avl树avl树一个高度平衡的二叉树。它具有一下性质:它的左右子树的高度差绝对值不超过...
2020-03-26 17:30:34
950
原创 jdk8 HashMap源码解读(数学思想),亲自造数据实验其原理*(੭*ˊᵕˋ)੭*ଘ
掘金同步更新中概述HashMap是一种数组加链表形式的结构,跟准确的说是一个线程不安全链表数组结构。适合存放key-value键值对,做等值查找。java8及之后的改变 在java1.8之后,将HashMap做了优化。 首先,当链表节点个数大于8个以后,会将链表转换为一棵红黑树。至于为什么是8个,源码中的注释说,是做了大量随机数测试。 而后,就是面试经常喜欢问的,在多线程的情况...
2020-03-26 17:23:30
286
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人