摘要: 1、ABA问题 CAS 会导致“ABA问题”。 CAS 算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化。 比如说一个线程 one 从内存位置 V 中取出 A,这时候另一个线程 two 也从内存中取出 A,并且 two 进行了一些操作变成了 B 阅读全文
posted @ 2020-04-18 16:11 那些年的代码 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。 2.getClass方法 final方法,获得运行时类型。 3.toString方法 该方法用得比较多,一般子类都有覆盖。 4.fin 阅读全文
posted @ 2020-04-18 09:26 那些年的代码 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 版权所有,转载请声明出处 zhyiwww@163.com 为了弄清楚这个问题 , 我又看了一遍 Collection 部分 , 并且看了些其中的源码 , 觉得对其中的实现又明白了一点 , 现在说出来和大家共享 . 我们先看一下 Set 类的关系图: ​ 现在我们就从 Set 说起。 Set 接口为我 阅读全文
posted @ 2020-04-18 09:19 那些年的代码 阅读(2482) 评论(0) 推荐(0) 编辑
摘要: 什么是链表结构: 链表结构是由许多节点构成的,每个节点都包含两部分: 数据部分:保存该节点的实际数据。 地址部分:保存的是下一个节点的地址。 链表的特点: 结点在存储器中的位置是任意的,即逻辑上相邻的数 据元素在物理上不一定相邻 访问时只能通过头指针进入链表,并通过每个结点的 指针域向后扫描其余结点 阅读全文
posted @ 2020-04-18 08:51 那些年的代码 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 图示 set的两个主要实现类,TreeSet和HashSet,底层存储结构都是用的map,而且是将set需要存储的值放在map的key里的,PRESENT是一个空的object对象。 map每次put如果key值不存在,返回的是null,key值如果存在,则返回之前key的oldValue,这样与n 阅读全文
posted @ 2020-04-18 08:03 那些年的代码 阅读(1922) 评论(0) 推荐(0) 编辑