![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
notes
得求
这个作者很懒,什么都没留下…
展开
-
Java线程池的使用和源码
1.为什么使用线程池线程池,本质上是一种对象池,用于管理线程资源。在任务执行前,需要从线程池中拿出线程来执行。在任务执行完成之后,需要把线程放回线程池。通过线程的这种反复利用机制,可以有效地避免直接创建线程所带来的坏处。2.示例 public static void main(String[] args) { //创建线程池 ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();原创 2020-07-27 20:12:44 · 85 阅读 · 0 评论 -
HashMap扩容机制源码
1.三个问题:为什么HashMap的容量一定是2n2^n2nHashMap中的hash函数具体是怎么实现的resize函数2.HashMap如何存储数据的首先要说的是HashMap是利用拉链法来存储,代码如下 /** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. * (We原创 2020-07-16 18:27:00 · 314 阅读 · 1 评论 -
lc周赛被LinkedList坑了以后来分析一下LinkedList和ArrayList的区分
1.结论面向较多数据的增删则使用LinkedList,大量的访问则使用ArrayList,否则可能tle。如果LinkedList的话可能会让复杂度过高。2.LinkedList的crud首先,顾名思义,LinkedList是通过node类来存储数据的: private static class Node<E> { E item; Node<E> next; Node<E> prev; Nod原创 2020-06-14 16:24:23 · 166 阅读 · 0 评论 -
PriorityQueue(优先队列)使用过程的坑
PriorityQueue(优先队列)使用过程的坑1.问题是什么?现在有一个String类型的数组,我们需要按照每个字符串的长度按照从大到小对数组进行排序。例如“Leetcode”,“is”,“cool”,显然,结果是“LeetCode”“cool”“is”。最简洁的思路则是利用PriorityQueue,并重写comparator接口来完成排序。代码如下: String[] arr = text.split(" "); PriorityQueue<String&原创 2020-05-18 15:44:05 · 1567 阅读 · 0 评论