02 2019 档案
摘要:类的主要属性: Node节点源代码 hashMap的整个复制插入: 其中的put和putval 关于红黑树的节点插入问题: 关于hashmap中的扩容的问题resize() 进行扩容,每次扩容都是2倍,会伴随着一次重新hash分配,并且会遍历hash表中所有的元素,是非常耗时的。在编写程序中,要尽量
阅读全文
摘要:1.最长递增子序列问题 https://leetcode.com/problems/longest-increasing-subsequence/ 时间复杂度O(n^2)有些情况会超时 提供一种新的方法时间复杂度O(n*logn) 2.最长回文串问题 https://leetcode.com/pro
阅读全文
摘要:解决hash冲突的方法: 问题引入: 1.HashMap的源码,实现原理,JDK8对HashMap做了怎样的优化? 2.HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。 Hashmap,两次哈希,第一次直接调用 key 的 hashcode 方法,第二次再调用一个函即hash= hash
阅读全文
摘要:在ReentrantLock中我们通过Condition来实现指定线程的唤醒 在CyclicBarrier底层我们也是通过ReentrantLock和Condition实现的 我们知道一个ReentrantLock除了维护一个CLH同步队列,同时它还维持一个Condition条件队列(好像每一个Co
阅读全文
摘要:Lock对象是在java5中加的实现同步的效果,Lock主要是在jdk的层面来实现同步,synchronized是Java的关键字,是java的内置属性,主要在jvm层面上来对临界资源的同步互斥访问。 一. synchronized 的局限性 与 Lock 的优点 如果一个代码块被synchroni
阅读全文