JDK源码
文章平均质量分 87
冰镇-西瓜
目标赋予我们生命的意义和目的。有了目标,我们才会把注意力集中在追求喜悦,而不是在避免痛苦上。
展开
-
ThreadLocal源码解析
ThreadLocal是Java语言提供的用于支持线程局部变量的类。所谓的线程局部变量,就是仅仅只能被本线程访问,不能在线程之间进行共享访问的变量(每个线程一个拷贝)。在各个Java web的各种框架中ThreadLocal几乎已经被用烂了,spring中有使用,mybatis中也有使用,hibernate中也有使用,甚至我们写个分页也用ThreadLocal来传递参数......这也从侧面说明了转载 2017-08-24 17:00:12 · 152 阅读 · 0 评论 -
AtomicInteger解析
在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而AtomicInteger则通过一种线程安全的加减操作接口。咳哟参考我之前写的一篇博客http://www.cnblogs.com/sharkli/p/5597148.html,今天偶然发现可以不用synchronized使用AtomicInteger完成同样的功能,具体代码如下,转载 2017-08-24 17:19:53 · 232 阅读 · 0 评论 -
HashMap_jdk1.8源码分析
如果需要满足线程安全,可以用Collections的synchronizedMap方法使HashMap具有线程安全的能力,或者使用ConcurrentHashMap。 下面我们讲解下JDK1.8做了哪些优化。经过观测可以发现,我们使用的是2次幂的扩展(指长度扩为原来2倍),所以,元素的位置要么是在原位置,要么是在原位置再移动2次幂的位置。看下图可以明白这句话的意思,n为table的长度,图原创 2017-08-22 22:46:34 · 217 阅读 · 0 评论 -
深入理解Arrays.sort()
Arrays.sort(T[], Comparator c) 方法用于对象数组按用户自定义规则排序.官方Java文档只是简要描述此方法的作用,并未进行详细的介绍,本文将深入解析此方法。1. 简单示例sort方法的使用非常的简单明了,下面的例子中,先定义一个比较Dog大小的Comparator,然后将其实例对象作为参数传给sort方法,通过此示例,你应该能够快速掌握Arrays.sor转载 2017-09-06 09:47:17 · 237 阅读 · 0 评论 -
Collections.sort();和Arrays.sort()
今天面试的时候,被问到Collections.sort();和Arrays.sort();两个方法的排序算法实现,我只记得一个是快速排序一个是归并排序,但是刚刚看到没那么简单。Arrays.sort()先来看看Arrays.sort();,一点进这个方法会看到是这样子的public static void sort(int[] a) { DualPivotQuicksort.s转载 2017-09-06 10:11:48 · 168 阅读 · 0 评论 -
ConcurrentHashMap源码解读
转载原文:http://blog.csdn.net/wangshuang1631/article/details/54311930ConcurrentHashMap 结构分析ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment。HashEntry 用来封装映射表的键 / 值对;Segment 用来充当锁的角色,每个 Segment 对象转载 2017-08-28 15:37:44 · 230 阅读 · 0 评论 -
ArrayList源码解析
每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量也自动增长。自动增长会带来数据向新数组的重新拷贝,因此,如果可预知数据量的多少,可在构造ArrayList时指定其容量。在添加大量元素前,应用程序也可以使用ensureCapacity操作来增加ArrayList实例的容量,这可以减少递增式再分配的转载 2017-08-29 15:25:31 · 198 阅读 · 0 评论