Java
文章平均质量分 92
「已注销」
这个作者很懒,什么都没留下…
展开
-
设计模式大冒险第一关:观察者模式
所谓的观察者模式指的是一种一对多的关系,我们把其中的一叫做Subject(类比上文中的公众号),把其中的多叫做Observer(类比上文中关注公众号的用户),也就是观察者。因为多个Observer的变动依赖Subject的状态更新,所以Subject在内部维护了一个Observer的列表,一旦Subject的状态有更新,就会遍历这个列表,通知列表中每一个Observer进行相应的更新。因为有了这个列表,Subject就可以对这个列表进行增删改查的操作。也就实现了Observer对Subject。...原创 2022-08-30 14:29:01 · 149 阅读 · 1 评论 -
java.lang.UnsupportedOperationException
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。 代码块: public class ListTest { public static void main(String[] args) { String[] array = {"1","2","3","4","5"}; List<String> list = Arr转载 2020-11-21 14:34:41 · 1714 阅读 · 0 评论 -
史上最全最新HashMap源码
文章目录文章总览版本区别JDK1.7JDK1.8数据结构属性解释属性定义默认属性源码解析:添加元素:红黑树化:计算阈值:数组扩容:解析resize()避免rehash()红黑树定义: 文章总览 JDK1.7和JDK1.8的区别 属性解释 put()过程解析 计算threshold JDK1.8扩容优化 JDK1.7死循环图解 版本区别 JDK1.7 数组+链表,即使哈希函数取得再好,也很难达到元素百分百均匀分布。 当 HashMap 中有大量的元素都存放到同一个桶中时,这个桶下有一条长长的链表,极端情原创 2020-11-11 16:23:47 · 1926 阅读 · 0 评论