- 博客(26)
- 资源 (1)
- 问答 (6)
- 收藏
- 关注
原创 欢迎使用CS
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-06-04 10:58:48
172
原创 HashMap源码解析
源码基于1.8.0_112HashMap是最常用的集合之一,原理不是很难,代码相对较繁琐**原理** :HashMap维护一个数组(很多的桶),每个桶中根据hash值放入链表,链表达到一定长度后转化为红黑树。思考,如果在分布均匀的情况下,每个桶中最多只有一个元素,因为table的容两如果为16 ,那么当放入第13个元素时(负载因子0.75 ) table 就扩容为32。所以只有在hash分布极其不均匀时,才会
2017-05-14 20:38:48
251
原创 Collections中的内部集合类
Collections中的内部集合类源码基于1.8.0_112Collections中提供了大量的集合类,以代理的方式对现有的集合进行了功能上的修改。总共有以下几类集合: Unmodifiable:不可修改的集合类 Synchronized:同步的集合类 Checked:类型安全的集合类 Empty:空集合类 Empty:只有单个元素的集合类由于各类以上几类集合对List、Map、Set的
2017-05-13 15:49:30
636
原创 CopyOnWriteArrayList源码分析
CopyOnWriteArrayList源码基于1.8.0_112CopyOnWriteArrayList也是通过数组来存储元素,阅读过之前的ArrayList的话这边应该很容易理解原理 :CopyOnWriteArrayList内部通过数组来存储数据,每次修改list都会产生一个新的数组,然后复制原始数据。修改方法都通过内部的而一个锁对象来实现同步。
2017-05-12 18:23:59
239
原创 Stack源码分析
Stack源码基于1.8.0_112Stack继承自Vector,加入了关键的push、peek、pop方法,具体步骤可参考Vector和ArrayList原理 :ArrayList内部使用一个数组存储放入的数据,数组使用默认大小初始化,当数组无法再放入更多的对象时,数组会扩大到原来的2倍。
2017-05-12 16:01:00
322
原创 Vector源码解析
Vector源码基于1.8.0_112Vector使用的相对较少,结构与ArrayList几乎一样。Vector的public方法大多为synchronized,是线程安全的。原理 :ArrayList内部使用一个数组存储放入的数据,数组使用默认大小初始化(也可以自定义),当数组无法再放入更多的对象时,数组会扩大到原来的2倍或者使用增加扩容系数的大小。
2017-05-11 20:28:06
568
原创 LinkedList源码分析
LinkedList源码基于1.8.0_112LinkedList个人使用的不是很多,结构也比较简单。原理 :LinkedList中使用了双向链表存储元素,链表这里就不在详述了。
2017-05-11 17:36:23
220
原创 ArrayList源码分析
ArrayList源码基于1.8.0_112ArrayList是最常用的集合之一,结构也比较简单。原理 :ArrayList内部使用一个数组存储放入的数据,数组使用默认大小初始化(也可以自定义),当数组无法再放入更多的对象时,数组会扩大到原来的1.5倍。
2017-05-11 15:14:20
418
原创 观察者模式
观察者模式对象间建立一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。 观察者模式可在主题处push或者pull数据,push方式被认为更正确的方式。
2017-05-04 11:01:54
280
原创 动态代理
代理模式需要为每个类编写一个代理类,动态代理则会自动生成代理类简化操作。 实现动态代理有两种方式java自带api和cglib。java自带api基于接口生成代理类,实现动态代理
2017-05-03 14:17:28
200
使用jackson把xml字符串转换为JsonNode
2018-04-23
Thread.sleep问题求解
2017-09-12
javamail发送邮件,已发邮箱中没有
2017-09-05
线程通过flag停止问题
2017-04-06
java {{函数}} 语法求解
2017-02-28
springMVC中dto和entity为什么要序列化?
2017-02-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人