![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
leogreat110
这个作者很懒,什么都没留下…
展开
-
泛型
泛型-接口-继承-多态转自https://www.cnblogs.com/coprince/p/8603492.html转载 2021-04-07 15:20:54 · 51 阅读 · 0 评论 -
分布式Session的几种实现方式
https://blog.csdn.net/u011213044/article/details/80525997转载 2021-04-07 09:48:00 · 69 阅读 · 0 评论 -
JDK源码直击
JDK源码其实没什么好总结的,纯粹看个人,总结一下比较重要的源码:(1)List、Map、Set实现类的源代码(2)ReentrantLock、AQS的源代码(3)AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的(4)线程池的实现原理(5)Object类中的方法以及每个方法的作用转自作者:Java黎先生链接:https://www.jianshu.com/p/83e4c4fdd6ebReentrantLoc...原创 2021-04-06 10:47:58 · 73 阅读 · 0 评论 -
常见的数据结构
数组链表双向链表二叉树平衡二叉树b+红黑树1.Hash索引Hash索引把数据以hash形式组织起来,因此查找某一条记录的时候,速度非常快。同时.hash算法的索引有个缺点,因为它不是按照大小排序的。所以,它无法按照范围进行查找。————————————————2.二叉树结构索引二叉树的定义:1.任意节点左子树不为空,则左子树的值均小于根节点的值;2.任意节点右子树不为空,则右子树的值均大于于根节点的值;3.任意节点的左右子树也分别是二叉查找树;4.没有键值相等..原创 2021-04-01 16:03:48 · 66 阅读 · 0 评论 -
volatile
本文主要为摘抄拼凑Java中volatile的作用:1、Java提供了volatile关键字来保证可见性;2、保证有序性,代码为【context = loadContext();inited = true;】;3、提供double check。(摘抄)如何理解:Java编程语言允许线程访问共享变量,那么为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量,或者把这个变量声明成volatile,可以理解volatile是轻量级的synchronized。使用volati原创 2021-04-01 10:13:20 · 51 阅读 · 0 评论 -
hashmap、hashtable和concurrenthashmap原理
hashmap:HashMap就是数组+链表(哈希表或者散列函数)+红黑树的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表“拉链法”的实现。主干是数组,entry的value是链表,链表>8个后转红黑树。普通时间复杂度就是hash, 一般时间复杂度O(logn)主要有put和get方法,put的原理是,通过hash&length-1计算index,此时记作Entry[index]=该元素。如果index相同就是新入的元素放置到Entry[index],原先的元素记作原创 2021-04-01 09:43:46 · 51 阅读 · 0 评论 -
缓存穿透、缓存雪崩和缓存击穿
1.缓存穿透定义:查询不存在的值,缓存中没有,直接去查数据库,失去了缓存的意义。大并发下,利用此漏洞造成数据库挂掉。解决方法:最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。另外也有一个更为简单粗暴的方法(我们采用的就是这种),如果一个查询返回的数据为空(不管是数 据不存在,还是系统故障),我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。2....原创 2021-03-31 09:14:13 · 48 阅读 · 0 评论