logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

5.Java SDK源码分析系列笔记-Vector

单独的使用方法是可以保证线程安全的。可以看出是个List,可以克隆,可以序列化,可以使用下标访问。可以看出这个方法使用sychronized修饰。默认初始化长度为10,扩容时候的增量为两倍。不扩容的时候O(1),扩容O(N)组合成的复合方法,可能抛出。

#java#开发语言
6.Java SDK源码分析系列笔记-SynchronizedList

【代码】6.Java SDK源码分析系列笔记-SynchronizedList。

#java#开发语言
8.Java SDK源码分析系列笔记-JDK1.7 HashMap

1.7的put操作是头插入的。两个线程同时put并且resize的时候会出现环形链表的情况,所以get操作会出现死循环。遍历时(get)执行删除操作(remove)会抛出这个异常,这叫做fast-fail机制。resize中有个transfer,需要把旧数组中的所有元素转移到新的数组中。put操作中判断key为NULL的时候,会调用putForNullKey。不是计算Hash后对table.len

#java#哈希算法
15.Java SDK源码分析系列笔记-TreeSet

底层使用TreeMap实现,value使用newObject作为占位符。

#java#开发语言
10.Java SDK源码分析系列笔记-TreeMap

基于红黑树(平衡二叉搜索树)实现,效率为O(logN)的key-value对。

#java#开发语言
14.Java SDK源码分析系列笔记-LinkedHashSet

底层使用LinkedHashMap实现,value使用newObject作为占位符。

#java#开发语言
13.Java SDK源码分析系列笔记-HashSet

HashSet底层是通过HashMap实现的,value使用new Object()作为占位符。

#java#开发语言
11.Java SDK源码分析系列笔记-Hashtable

同get方法找到节点,删除的操作就是链表节点的删除操作。初始化容量为11,默认的加载因子为0.75。使用链地址法(单链表)解决Hash冲突。可克隆,可序列化,实现了Map接口。使用synchronized修饰。线程安全的hashmap。

#java#开发语言
12.Java SDK源码分析系列笔记-PriorityQueue

是一个队列,只不过加上了优先级的概念,换句话说队列里的元素是根据某种规则排好序的输出3. 源码分析3.1. 属性3.2. 有参构造initFromCollection可以看出主要有两个步骤,一个是建立初始化元素到数组中,另一个是维护堆的属性

#java#python
到底了