加载中
Java并发源码之ReentrantLock

ReentrantLock介绍 ReentrantLock是一个可重入的互斥锁,与使用synchronized方法和语句访问的隐式监视锁具有相同的基本行为和语义,但具有扩展功能。ReentrantLock属于最后一个成功加锁并且还...

2017/10/20 14:09
7
JDK容器学习之CopyOnWriteArrayList:线程安全保障机制

JDK容器学习之CopyOnWriteArrayList 列表容器常见的有ArrayList和LinkedList,然而两者都是非线程安全的,若应用场景对线程安全有需求,则可以使用CopyOnWriteArrayList来代替传统的Vector ...

jdk
2017/10/20 14:05
19
多线程之Join方法介绍

说到join的使用,这边先讲一个案例。 假设这边有一个线程,在run方法里面随机睡眠一段时间。因为睡眠时间的不确定性,所以如果想要等到这个线程执行完在去执行另外一个线程的话,用睡眠唤醒另...

2017/05/20 09:12
8
JAVA源码之StringBuffer扩容机制

起因 做java开发有一些年头,常用的工具类相比大家都很熟悉,但是对于其中的实现机制,如果不曾细看,还真回答不上来,前日一友人问起StringBuffer和StringBuilder有什么区别,我自以对答如流...

2017/05/12 19:12
58
Java开源项目整理

1. 整理出一些使用比较广或者个人觉得比较好的java开源项目和资料供参考。 2. 如果你觉得好但是我没有列出的开源项目请告诉我,方便我添加到列表里。 3. 如果你发现信息描述有误请联系我,我会...

2017/05/12 19:06
128
indexOf和binarySearch的对比

在对一个列表进行检索的时候,我们经常使用的是indexOf方法进行检索,而Collections工具类也提供了一个检索的方法binarySearch,是使用二分搜索法搜索指定的列表。今天我们就来对比下这两个检...

2017/03/18 08:16
28
subList生成的列表和原列表的对比

在List类里面有一个方法是subList方法可以生成原表的视图,那么这个视图和原表有什么关系呢?下面我们就来试试。 首先我们定义一个包含两个字符串的列表list1,并加两个元素到list1,再构造一...

2017/03/18 08:12
14
subList方法的好处以及注意点

现在一个列表有50个元素,要求是删除下标为20~30的元素,那么我们第一个想法是什么?遍历这个列表,再删掉对吧?下面看下删除的程序。 这边有个注意的就是如果没问倒序的话,前面删完了,后面...

2017/03/18 08:10
26
ArrayList的for遍历和下标遍历的效率分析

因为List是有下标的,所以遍历的时候可以用增强for循环也可以用下标来遍历,那么这两个方式到底哪个效率更高呢?我们来假设一个模型,我们要计算一个380万条成绩的数据,我们放在ArrayList里...

2017/03/18 07:58
53
Java源码学习之:Semaphore

Semaphore工具类介绍 Semaphore类描述 从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放...

2017/02/27 09:46
64
Java显式锁学习总结之二:使用AbstractQueuedSynchronizer构建同步组件

Jdk1.5中包含了并发大神Doug Lea写的并发工具包java.util.concurrent,这个工具包中包含了显示锁和其他的实用同步组件。Doug Lea在构建锁和组件的时候,大多是以队列同步器(AbstractQueuedSy...

2017/02/25 08:52
35
JDK源码分析-Integer

  Integer是平时开发中最常用的类之一,但是如果没有研究过源码很多特性和坑可能就不知道,下面深入源码来分析一下Integer的设计和实现。 Integer:   继承结构:   -Java.lang.Object...

2017/01/24 17:31
10
java中的==、equals()、hashCode()源码分析

在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。 1. ==   java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码: 1 public...

JDK源码学习之ThreadLocal

ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 Th...

2016/07/05 14:43
69
JDK中的枚举enum

DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有...

2016/07/01 10:57
27
Hashtable、synchronizedMap、ConcurrentHashMap 比较

Doug Lea的util.concurrent包除了包含许多其他有用的并发构造块之外,还包含了一些主要集合类型List和Map的高性能的、线程安全的实现。Brian Goetz向您展示了用ConcurrentHashMap替换Hashtab...

Jdk源码学习之:ArrayList

1. ArrayList简介 首先看看ArrayList与Collection的关系: ArrayList的继承关系如下: java.lang.Object ↳ java.util.AbstractCollection ArrayList继承了AbstractList,实现了List。它是一...

2016/06/25 08:44
30
JDK源码学习之:HashSet和HashMap

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

Jdk源码学习之:String

一、定义 从该类的声明中我们可以看出String是final类型的,表示该类不能被继承,同时该类实现了三个接口:java.io.Serializable、 Comparable、 CharSequence 二、属性 这是一个字符数组,并...

2016/06/25 07:46
58
Jdk源码学习之: LinkedHashSet

LinkedHashSet是基于HashMap和双向链表的实现。使用实例: 利用链表来记录,保证了迭代输出的有序性。其具体结构如下所示: 可以看出,其实现基本和LinkedHashMap一样。 2. 关键实现 从继承关...

2016/06/25 07:18
22

没有更多内容

加载失败,请刷新页面

返回顶部
顶部