公子姓王

导航

05 2019 档案

Java容器解析系列(17) LruCache详解
摘要:在之前讲 " " 的时候,我们说起可以用来实现 算法,接下来我看一下其中的一个具体实现 中的 . 关于Lru算法,请参考 "漫画:什么是LRU算法?" talk is cheap, I am gonna show you something really expensive. java packag 阅读全文

posted @ 2019-05-29 10:54 公子姓王 阅读(251) 评论(0) 推荐(0)

Java容器解析系列(16) android内存优化之SparseArray
摘要:HashMap的缺点: 1. 自动装箱导致的性能损失; 2. 使用拉链法来解决hash冲突,如果hash冲突较多,需要遍历链表,导致性能下降,在Java 8 中,如果链表长度 8,会使用红黑树来代替链表; 3. 由于loadFactor的存在,导致(1 loadFactor) capacity 的空 阅读全文

posted @ 2019-05-28 15:55 公子姓王 阅读(271) 评论(0) 推荐(0)

Java容器解析系列(15) HashTable Dictionary & Properties
摘要:HashTable的实现原理与HashMap没有什么区别; 其与HashMap的主要区别如下: 1. 添加进入jdk时间:HashTable在jdk1.0时添加,HashMap在jdk1.2时添加; 2. 类签名:两者都实现了Map接口,但是HashMap继承自AbstractMap,HashTab 阅读全文

posted @ 2019-05-28 15:13 公子姓王 阅读(265) 评论(0) 推荐(0)

Java容器解析系列(14) IdentityHashMap详解
摘要:`IdentityHashMap HashMap`相同,主要不同点在于: 1. 数据结构:使用一个数组 来存储 ,` table[2k] key table[2k + 1] value`,也即: ]( 使用数组 + 链表); 2. 中的 和 通过 来比较是否相等( 通过 ); 3. 中的 hash冲 阅读全文

posted @ 2019-05-28 14:56 公子姓王 阅读(1205) 评论(0) 推荐(0)

Java容器解析系列(13) WeakHashMap详解
摘要:关于 其实没有太多可说的,其与 大致相同,区别就在于: 1. 对每个 的引用方式为弱引用; 关于 4种引用方式,参考 "java Reference" 网上很多说 弱引用指向 Entry,这种说法是完全错误的 2. 在 被回收时,对应的value并没有回收,只有在调用 的方法时才会回收 ; 具体请看 阅读全文

posted @ 2019-05-28 10:20 公子姓王 阅读(202) 评论(0) 推荐(0)

Java容器解析系列(12) LinkedHashMap 详解
摘要:继承自 ,除了提供 的功能外, 还是维护一个双向链表(实际为带头结点的双向循环链表),持有所有的键值对的引用: 1. 这个双向链表定义了迭代器的迭代顺序,默认按 迭代; 2. 也可以在构造时设置为按照 方式(访问顺序)迭代(from least recently accessed to most r 阅读全文

posted @ 2019-05-27 21:22 公子姓王 阅读(243) 评论(0) 推荐(0)

Java容器解析系列(11) HashMap 详解
摘要:本篇我们来介绍一个最常用的 结构—— 关于HashMap,关于其基本原理,网上对其进行讲解的博客非常多,且很多都写的比较好,所以.... 这里直接贴上地址: 关于 算法: "Hash算法" "Hash时取模一定要模质数吗?" 关于HashMap: "深入Java集合学习系列:HashMap的实现原理 阅读全文

posted @ 2019-05-24 19:13 公子姓王 阅读(187) 评论(0) 推荐(0)