关于F.lux f.lux (后面是有一点的)是一款小巧给力的电脑屏幕色温调节工具,只有不到600KB的大小。软件在白天和夜晚自动调节屏幕色温,以给用户舒适的视觉体验,适度过...
关于F.lux f.lux (后面是有一点的)是一款小巧给力的电脑屏幕色温调节工具,只有不到600KB的大小。软件在白天和夜晚自动调节屏幕色温,以给用户舒适的视觉体验,适度过...
需要先了解红黑树,这是之前分析红黑树的文章。之前在分析红黑树时,我认为红黑树=二叉查找树+红黑平衡,关于二叉查找树这是递归版本的,而在TreeMap中实现的是非递归版本的。T...
先来看看TreeMap的继承关系图: 来看看二者都定义了些什么方法 SortedMap NavigableMap 接下来会在TreeMap中介绍上述方法的实现。
LinkedHashMap继承自HashMappublic class LinkedHashMap<K,V> extends HashMap<K,V> implements ...
前言 1.8后的ConcurrentHashMap与之前有截然不同的设计,之前是分段锁的思想,通过采用分段锁Segment减少热点域来提高并发效率。1.8利用CAS+Sync...
题一:数组arr,打印出数组中个数大于一半的数 num记录数字,time记录个数;遍历过程中不相同的相互抵消。 题二:数组arr,打印个数大于N/k的数 给定一个整形数组和K...
题一:顺时针转圈打印矩阵 题二:“之“字形打印矩阵"之"字形打印矩阵两个指针:(sr,sc)先从第一行往右移动,到头就往下;(er,ec)第一列往下,到头往右print方法里...
ReentrantLock是独占锁,只允许一个线程执行;CountDownLatch,Semaphore等是共享锁;它们分别利用了AQS的独占与共享功能;那么如果在读操作远多...
对于读取操作数量明显大于写入操作的场景,使用读写锁。先来自己实现个读写锁,之后再分析JUC包下的ReentrantReadWriteLock。读写锁的规则:当有写操作正在运行...
HashMap是数组+链表+红黑树。 Node.hash是key的hash1.8的HashMap增加了红黑树来增加存取效率,红黑树的节点TreeNode 这样是为了红黑树与链...
map是什么?键值对,key-value映射就是map。我们从三个角度分析:keyset,values,Entry。keysetkeyset是键key的Set集合,可以看出对...
回环栅栏,通过它可以实现让一组线程在栅栏前等待,直到栅栏打开,再按AQS锁队列中的顺序依此执行,当然这里有插队情况。叫做回环是因为当所有等待线程都被释放以后,CyclicBa...
AQS的功能可以分为两类:独占与共享;如ReentrantLock利用了其独占功能,CountDownLatch,Semaphore利用了其共享功能。AQS的静态内部类Nod...
Semaphore信号量,可以控同时访问的线程个数,acquire() 失败就等待,而 release() 释放一个许可。来看看例子: 只允许最多四个线程同时运行,其它的等待...
主要的功能就是通过await()方法来阻塞线程,然后等待计数器减少到0了,再唤起那些等待的线程继续;即你想要某些线程等待另一些线程执行完再执行,就可以使用CountDownL...