1.引子 并发编程中使用HashMap可能导致程序死循环。因为多线程会put方法添加键值对时将导致HashMap的Entry链表形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就会产生死循环获取Entry。 另外Hashtable只是简单地使用阻塞式锁(synchroni ...
分类:
其他好文 时间:
2020-02-28 01:13:39
阅读次数:
75
java获取各类容器和数组的长度 没什么别的,查缺补漏而已 数组:length 属性 ArrayList:size()方法 HashMap:size()方法 HashSet:size()方法 再加一个,字符串String:length() 方法 ...
分类:
编程语言 时间:
2020-02-26 22:54:09
阅读次数:
82
HashMap HashMap是一个用于存储Key-Value键值对的集合,其内部结构为链表数组。每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。put时,思想是通过key的哈希值,模HashMap的初始值,决定插入位置,当出现哈希冲 ...
分类:
其他好文 时间:
2020-02-26 19:17:25
阅读次数:
83
资料来自 "一级缓存和二级缓存" "一级缓存和二级缓存" "注解" "mapper" 一级缓存 一级缓存,是指SqlSession级别的缓存。一级缓存是一直开启的,在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间 ...
分类:
其他好文 时间:
2020-02-25 18:18:12
阅读次数:
56
不难看出,loHead和loTail两个节点分别记录不需要移动的链表的头部和尾部,hiHead和hiTail分别记录需要移动的链表头部和尾部. 假设在扩容的时候某个数组下有这样一个链表 : image 其中,假设天蓝色部分的不需要挪动,红色部分的需要挪动 第一步 : 建立loHead loTail ...
分类:
其他好文 时间:
2020-02-24 16:42:11
阅读次数:
61
package com.sb.test; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function. ...
分类:
其他好文 时间:
2020-02-24 15:20:37
阅读次数:
87
Java进阶教程:HashMap实现原理 有一段时间没写博客了,现在连组织语言的能力都下降了... 关于HashMap 你必须要知道的 HashMap是我们开发中最常用的数据结构,功能强大,但是说句实话,却又是最陌生的,如果没有打开JDK拜读过他的代码,研究他的实现,甚是可惜。今天我们一起来研究一下 ...
分类:
编程语言 时间:
2020-02-24 00:31:02
阅读次数:
64
JWT json web token maven依赖 java jwt 暂不完美的工具类 配置拦截器使用 拦截器 配置 controller ...
分类:
其他好文 时间:
2020-02-23 16:34:05
阅读次数:
92
问题 当我们用 fastjson 如下 API 转成 List<T> 这种类型时,会遇到类型丢失的问题 com.alibaba.fastjson.JSON#parseObject(java.lang.String, java.lang.Class<T>) 解决方案 String testJSON = ...
分类:
Web程序 时间:
2020-02-22 19:51:38
阅读次数:
547
键不可以重复,值可以重复,每个键只能对应一个值 1.HashMap——底层是数组+链表,线程不安全(允许存放null键<只能一个null值键>和null值,当键为null时把对应值放在数组首位 )(HashMap有一个子类LinkedHashMap,可以根据存入顺序进行 HashMap采用Entry ...
分类:
其他好文 时间:
2020-02-22 16:07:24
阅读次数:
69