12 2020 档案

摘要:12.1 为什么要使用线程池 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理 阅读全文
posted @ 2020-12-07 01:43 knbsyoo 阅读(157) 评论(0) 推荐(0)
摘要:一. 概述 Hasp可以看成一个桶装的哈希散列表。但是当桶变得太大的时候,就会变成一个树状的桶。每个结构类似于java.util.TreeMap。大多数情况下使用普通的桶,但是转换为TreeNode仅适用于通过坚持节点实例。TreeNode桶可能与其他的使用方法一样,但是支持更快的查找,当过剩的时候 阅读全文
posted @ 2020-12-02 22:32 knbsyoo 阅读(122) 评论(0) 推荐(0)
摘要:一. 描述 双向链表(Doubly-linked)实现了接口List和Deque(双端队列),实现了所有的list操作并允许元素可为null。 对于双向链表,所有的操作都符合预期。索引到列表的操作将从列表头或者列表尾开始遍历列表,以便更接近指定的索引为准。(不支持类似数组的随机访问,根据下标访问链表 阅读全文
posted @ 2020-12-01 23:55 knbsyoo 阅读(322) 评论(0) 推荐(0)
摘要:一. 类说明 ArrayList是List接口的可调整大小的数组的实现。实现了所有可选的list操作,并允许元素为null。除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组大小。这个类大致等同于Vector,只是它不同步。 这些操作siz, isEmpty, get, se 阅读全文
posted @ 2020-12-01 21:46 knbsyoo 阅读(123) 评论(0) 推荐(0)
摘要:1. 概念 数组是有序的元素序列,相同类型的有限的元素的集合。数组的元素存储在一个连续性的内存空间中,并通过索引访问。 一些零散的知识点: 1)HashMap底层采用数组+树/链表结构,是通过元素hashcode的值和数组大小去计算数组下标,然后将元素放到相对应的数组元素里面(链表/树)。通过索引查 阅读全文
posted @ 2020-12-01 14:08 knbsyoo 阅读(110) 评论(0) 推荐(0)