学习开源框架源码,除了储备点知识以便于与面试官互相忽略之外,我想最重要的还是去学习大神如何写代码,如何做到职责单一,如何做到可扩展等。。。 本篇,试着总结一下mybatis在缓存模块使用到的装饰模式。 或许一说到装饰模式就会扯到装饰模式四种角色,但我觉得这些都是扯蛋,没必需照本宣科,我觉得myabt ...
分类:
其他好文 时间:
2019-11-24 23:58:54
阅读次数:
198
equals以及hashcode 1、为什么覆盖equals的时候,必须覆盖hashCode方法 2、hashco的基本实现 重写equals方法需要注意的: 1、自反性 A.equals(A) 2、对称性 A.equals(B) <=> B.equals(A) 3、传递性 A.equals(B)、 ...
分类:
其他好文 时间:
2019-11-23 18:19:12
阅读次数:
44
先看几个好玩的结论: 如果两个对象相等,则hashcode一定是相同的; 两个对象相等,对两个对象分别调用equals方法都返回true 两个对象有相同的hashcode值,它们也不一定是相等的 懵不?先来看定义: hashcode()的作用是获取哈希码(也称散列码,实际上就是返回一个int 整数) ...
分类:
编程语言 时间:
2019-11-20 16:49:29
阅读次数:
63
1.实现结构是hash表bucket,底层就是node,也有人称为段(segment) 2.put,通过对key执行hashcode()找到对应对索引,当hashcode相同是发生“碰撞”,采用链表方式存储,jdk8在量大时引入红黑树数据结构 3.get,通过对key执行hashcode()找到对应 ...
分类:
其他好文 时间:
2019-11-19 01:13:45
阅读次数:
67
新建一个类,实现IEqualityComparer接口。注意GetHashCode方法的实现,只有HashCode相同才会去比较 public class Compare:IEqualityComparer<Student> { public bool Equals(Student x,Studen ...
1、Set集合(理解) (1)Set集合的特点 无序,唯一。 (2)HashSet集合(掌握) A: 底层数据结构是哈希表(是一个元素为链表的数组) B: 哈希表底层依赖两个方法: hashCode() 和 equals() 执行顺序: 首先比较哈希值是否相同 相同:继续执行equals()方法 返 ...
分类:
其他好文 时间:
2019-11-18 00:12:04
阅读次数:
69
System类提供了一个identityHashCode(Object x)方法,这个方法返回的是指定对象的精确hashCode值,也就是根据该对象的地址计算得到的hashCode值。 当某个类的hashCode()方法被重写之后,该类实例的hashCode方法就不能唯一地标识该对象,但是如果两个对 ...
分类:
编程语言 时间:
2019-11-17 20:52:38
阅读次数:
93
1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true。 &&:短路与,如果第一个表达式为false时,第二个表达式就不会计算了。 2.”==”和equals方法究竟有什么区别? ==:表示两个变量的值是否相等,用于比较两个基本数据类型的数据或者引用变量。 ...
分类:
编程语言 时间:
2019-11-14 16:39:49
阅读次数:
92
* filter—接收Lambda,从流中排除某些元素。 * 1imit-截断流,使其元素不超过给定数量。 * skip(n)-跳过元素,返回一个扔掉了前n个元素的流。若流中元素不足n个,则返回一个空流,与1imit(n)互补。 * distinct-筛选,通过流所生成元素的hashCode()和e ...
分类:
其他好文 时间:
2019-11-14 09:27:22
阅读次数:
74
JDK1.8新特性: hashMap 在jdk1.8中对hashMap等map集合的数据结构优化。hashMap数据结构的优化 原来的hashMap采用的数据结构是哈希表(数组+链表),hashMap默认大小是16,一个0-15索引的数组,如何往里面存储元素,首先调用元素的hashcode 方法,计 ...
分类:
其他好文 时间:
2019-11-13 12:38:46
阅读次数:
80