- 博客(6)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 map的存取以及原理。
同事总结的map的知识点,记录下来,方便以后模糊的时候再查看。1.Map: 映射关系 存储 key-value 值2.底层是一个 Node 数组 (entry 数组 是 JDK 1.6 的版本)3.JDK 1.8 的hashMap 新增了红黑树的概念,所以,这个版本之后的hashmap是由数组,链表,红黑树结合实现的。4.Node 是hashMap的一个静态内部类,它实现了Map.Entry。1....
2018-04-24 11:46:57 3934
原创 JAVA中重写equals()方法的同时要重写hashcode()方法
object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true;注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。如下:(1)当obj1.equals(obj2)为true时,obj...
2018-04-24 11:30:42 186
原创 到底什么是hash呢?hash碰撞?为什么HashMap的初始容量是16?
一 ,到底什么是hash呢?作者:知乎用户链接:https://www.zhihu.com/question/26762707/answer/40119521来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。hash(散列、杂凑)函数,是将任意长度的数据映射到有限长度的域上。直观解释起来,就是对一串数据m进行杂糅,输出另一段固定长度的数据h,作为这段数据的...
2018-04-23 11:35:22 37170 10
原创 ArrayList的扩容机制
int newCapacity = oldCapacity + (oldCapacity >> 1);相当如于 oldCapacity *1.5。第一次扩容默认为10,当大于当前容量*1.5,比如17个元素,第一次扩容默认为10,当到第11个元素时,扩容到10*1.5=15,当到第16个元素时,扩容到15*1.5=22。以上为亲测结果,下面是转载的源码知识。 ArrayList可以...
2018-04-20 11:37:15 730
转载 Java位运算原理及使用讲解
查看jdk源码的时候出现了位运算,在网上查资料才明白位运算到底是什么,记录一下。日常开发中位运算不是很常用,但是巧妙的使用位运算可以大量减少运行开销,优化算法。举个例子,翻转操作比较常见,比如初始值为1,操作一次变为0,再操作一次变为1。可能的做法是使用三木运算符,判断原始值为1还是0,如果是1,设置为0,否则设置为0.但是使用位运算,不用判断原始值,直接改变值就可以:1^num//num为原始值...
2018-04-19 10:23:56 285
原创 第一次查看jdk源码
第一次查看jdk源码,只看了几行,就震惊了,原来大神写程序是这么写的 /** * Returns <tt>true</tt> if this list contains no elements. * * @return <tt>true</tt> if this list contains no elements ...
2018-04-18 10:35:04 227
海康威视sdk java demo
2018-07-12
idea启动shiro管理的项目
2018-05-28
微信公众号session无法保存openId问题
2018-03-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人