摘要: 参考:https://www.jianshu.com/p/c0642afe03e0 CAS的思想很简单:三个参数,一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false。 细节参考:https://www.j 阅读全文
posted @ 2018-03-13 15:44 战斗的小白 阅读(327) 评论(0) 推荐(0) 编辑
摘要: Set的特点:Set元素无顺序,且元素不可以重复。 1、定义 Set接口定义: 2、底层存储 3、构造方法 4、增加和删除 Hashset的很多地方就是利用 hashmap的key实现的 阅读全文
posted @ 2018-03-10 18:35 战斗的小白 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 参照:http://www.cnblogs.com/tstd/p/5049338.html java.util.Iterator<E>是一个接口,它的定义如下: 便利的方法: 阅读全文
posted @ 2018-03-10 18:22 战斗的小白 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 静态代理 1)定义一个接口 2)被代理类 3)代理类 日志代理: 记时代理 测试类: 结果: **聚合方式要优于继承方式 继承:继承父类想要的功能 聚合:传入参数,实现想要的父类 如果为继承方式,如果日志和时间的位置要调换,那么需要新定义一个子类 而继承方式只需要在测试类中,调换位置就行 动态代理: 阅读全文
posted @ 2018-03-08 16:32 战斗的小白 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 参照: http://mp.weixin.qq.com/s/dzNq50zBQ4iDrOAhM4a70A http://mp.weixin.qq.com/s/1yWSfdz0j-PprGkDgOomhQ JDK1.7 多线程下死循环 源代码: resize步骤: 1.扩容 创建一个新的Entry空数 阅读全文
posted @ 2018-03-07 10:45 战斗的小白 阅读(1255) 评论(0) 推荐(0) 编辑
摘要: HashMap数组每个元素的初始值为NULL 1、定义 hash是“散列”:hash就是通过散列算法,将一个任意长度关键字转换为一个固定长度的散列值,但是有一点要指出的是,不同的关键字可能会散列出相同的散列值 2、HashMap类 3.底层存储 Entry数组 HashMap采用将相同的散列值存储到 阅读全文
posted @ 2018-03-06 23:33 战斗的小白 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 参照:http://www.cnblogs.com/tstd/p/5104099.html Stack(Fitst In Last Out) 1、定义 Vector是List的一个实现类,基于数组。扩容为*2。其功能和实现代码和ArrayList基本一样,Vector是线程安全的,ArrayList 阅读全文
posted @ 2018-03-06 21:26 战斗的小白 阅读(127) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-03-06 14:46 战斗的小白 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/tstd/p/5042087.html 1.定义 顶层接口collection List定义 ArrayList RandomAccess是一个标记接口,用来表明其支持快速随机访问 AbstractList(这是一个抽象类,对一些基础的list操 阅读全文
posted @ 2018-03-06 11:12 战斗的小白 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 定义: 组合:在新类中new 另外一个类的对象,以添加该对象的特性。 继承:从基类继承得到子类,获得基类的特性。 代理:在代理类中创建某功能的类,调用类的一些方法以获得该类的部分特性 场合: 组合:各部件之间没什么关系,只需要组合即可。like组装电脑,需要new CPU(),new RAM(),n 阅读全文
posted @ 2018-03-06 10:16 战斗的小白 阅读(559) 评论(0) 推荐(0) 编辑