很久没有写博客,有点汗颜,很多东西自己开始梳理一些,用博客的方式记录下来,既然自己是一名java开发人员,对jdk的源码也应该有一些研究一下。从网上下载下面的一个图片
对于其他的util类,暂时还没有去研究,只是看了图上所有类的所有方法,看完的感觉就是,核心的类就是四个:HashMap,TreeMap,ArrayList和LinkedList,至于set接口里面的东西基本上都是由HashMap,TreeMap派生而成的,可以重温习一下大学时候学习的hash的构成以及红黑树增删改查,以及怎样构造两种不同的链表结构。
看完有两个疑问:
HashMap里面的hash规则是根据什么算法写成的呢?这一点比较疑惑
static int hash(Object x) {
int h = x.hashCode();
h += ~(h << 9);
h ^= (h >>> 14);
h += (h << 4);
h ^= (h >>> 10);
return h;
}
Collections辅助类里面的
private static final int BINARYSEARCH_THRESHOLD = 5000;
private static final int REVERSE_THRESHOLD = 18;
private static final int SHUFFLE_THRESHOLD = 5;
private static final int FILL_THRESHOLD = 25;
private static final int ROTATE_THRESHOLD = 100;
private static final int COPY_THRESHOLD = 10;
private static final int REPLACEALL_THRESHOLD = 11;
private static final int INDEXOFSUBLIST_THRESHOLD = 35;
这一些值是怎样确定的,为什么可以用这一些值就可以确定是否采用循环或迭代方式去取值,难道是通过一次又一次的性能测试后确定的?
- 大小: 11.3 KB
分享到:
相关推荐
java.util包源码,pdf版,方便打印
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
java.util包
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
jdk源码java.util包,所有类解析,包含整体架构及各个类详解
java.util.ConcurrentModificationException 异常问题详解1
java.util包总结,方便大家学习。请多指教。
java.util.ArrayList 类提供了可调整大小的数组,并实现了List接口。以下是关于ArrayList中的要点: • 它实现了所有可选的列表操作,并且还允许所有元素,包括空值null。 • 它提供了一些方法来操作内部用来存储...
详细介绍了java.util.logging.Logger的用法和结构,对如果扩展Logger起到抛砖引玉的作用!尊重劳动成果,亲下载了要给个评价!
Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError),内附解决方案!
Exception in thread “main“ java.util.InputMismatchException
java并发工具包 java.util.concurrent中文版-带书签版
java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx
java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1)
java.util包介绍.pdf很详细的!!!!
Java.util包常用接口
详细介绍java.util.Date和java.sql.Date相互转换的多种方法总结,希望对大家有帮助
java并发工具包 java.util.concurrent中文版pdf
Java完成zip压缩源码,包括修改后的java.util.zip下的文件(可以解决中文文件名的问题)