自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 关于为啥要开博客

为啥要开博客

2017-03-05 21:00:19 226

转载 浅谈WeakHashMap

在Java集合框架系列文章的最后,笔者打算介绍一个特殊的成员:*WeakHashMap*,从名字可以看出它是某种 *Map*。它的特殊之处在于 *WeakHashMap* 里的`entry`可能会被GC自动删除,即使程序员没有调用`remove()`或者`clear()`方法。

2017-03-05 20:47:15 196

转载 深入理解Java PriorityQueue

Java中*PriorityQueue*通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从*Queue*接口函数出发,结合生动的图解,深入浅出地分析*PriorityQueue*每个操作的具体过程和时间复杂度,将让读者建立对*PriorityQueue*建立清晰而深入的认识。

2017-03-05 20:28:07 186

转载 JAVA LinkedHashSet 和 LinkedHashMap源码剖析

*LinkedHashMap*实现了Map接口,即允许放入`key`为`null`的元素,也允许插入`value`为`null`的元素。从名字上可以看出该容器是*linked list*和*HashMap*的混合体,也就是说它同时满足*HashMap*和*linked list*的某些特性。可将*LinkedHashMap*看作采用*linked list*增强的*HashMap*。

2017-03-05 10:23:39 268

转载 史上最清晰的红黑树讲解(下)

引用自此博客文章,感谢CarpenterLee史上最清晰的红黑树讲解(下)本文github地址上一篇文章史上最清晰的红黑树讲解(上)对Java TreeMap的插入以及插入之后的调整过程给出了详述。本文接着以Java TreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于一棵二叉查找树,给定节

2017-03-05 10:15:39 214

转载 史上最清晰的红黑树讲解(上)

本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及由此产生的调整过程。

2017-03-05 09:57:19 248

转载 Java ArrayDeque源码剖析

Java里有一个叫做*Stack*的类,却没有叫做*Queue*的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用*Stack*,而是推荐使用更高效的*ArrayDeque*;既然*Queue*只是一个接口,当需要使用队列时也就首选*ArrayDeque*了(次选是*LinkedList*)。

2017-03-04 23:05:12 244

转载 Java LinkedList源码剖析

*LinkedList*同时实现了*List*接口和*Deque*接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(*Queue*),同时又可以看作一个栈(*Stack*)。这样看来,*LinkedList*简直就是个全能冠军。当你需要使用栈或者队列时,可以考虑使用*LinkedList*

2017-03-04 22:54:43 191

转载 Java HashSet和HashMap源码剖析

之所以把*HashSet*和*HashMap*放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,**也就是说HashSet里面有一个HashMap(适配器模式)**。因此本文将重点分析*HashMap*。

2017-03-03 22:47:54 176

转载 Java ArrayList源码剖析

ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity),表示底层数组的实际大小,容器内存储元素的个数不能多于当前容量。当向容器中添加元素时,如果容量不足,容器会自动增大底层数组的大小。前面已经提过,Java泛型只是编译器提供的语法糖,所以这里的数

2017-03-03 22:31:22 161

转载 Java Collections Framework概览

容器,就是可以容纳其他Java对象的对象。Java Collections Framework(JCF)为Java开发者提供了通用的容器,其始于JDK 1.2。Java容器里只能放对象,对于基本类型(int, long, float, double等),需要将其包装成对象类型后(Integer, Long, Float, Double等)才能放到容器里。很多时候拆包装和解包装能够自动完成。这虽然会导致额外的性能和

2017-03-03 22:14:06 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除