加载中
ArrayList的for遍历和下标遍历的效率分析

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

2017/03/18 07:58
841
JAVA源码之StringBuffer扩容机制

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

2017/05/12 19:12
648
Hashtable、synchronizedMap、ConcurrentHashMap 比较

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

Java开源项目整理

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

2017/05/12 19:06
243
subList方法的好处以及注意点

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

2017/03/18 08:10
224
Java源码学习之:Semaphore

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

2017/02/27 09:46
212
Jdk源码学习之:String

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

2016/06/25 07:46
199
Java显式锁学习总结之二:使用AbstractQueuedSynchronizer构建同步组件

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

2017/02/25 08:52
196
JDK中的枚举enum

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

2016/07/01 10:57
194
indexOf和binarySearch的对比

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

2017/03/18 08:16
174
谈谈Java引用和Threadlocal的那些事

1 背景 某一天在某一个群里面的某个群友突然提出了一个问题:"threadlocal的key是弱引用,那么在threadlocal.get()的时候,发生GC之后,key是否是null?"屏幕前的你可以好好的想想这个问题,在...

2019/07/29 16:57
121
Jdk源码学习之:ArrayList

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

2016/06/25 08:44
110
subList生成的列表和原列表的对比

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

2017/03/18 08:12
105
JDK容器学习之CopyOnWriteArrayList:线程安全保障机制

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

jdk
2017/10/20 14:05
98
Java并发源码之ReentrantLock

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

2017/10/20 14:09
89
JDK源码学习之:HashSet和HashMap

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

死磕 java集合之DelayQueue源码分析

问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 继承体系 从继承...

2019/07/29 16:19
74
java中的==、equals()、hashCode()源码分析

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

Jdk源码学习之: LinkedHashSet

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

2016/06/25 07:18
47

没有更多内容

加载失败,请刷新页面

返回顶部
顶部