摘要: 前言 HashMap的唯一鸡肋就是非线程安全,在如今的高并发场景下它能派上的用场也将越来越少,为了兼有HashMap高效的存取能力的同时又能保证线程安全滋生了ConcurrentHashMap。在JDK1.8以前,数据结构仍然是数组、链表的方式,不过与Hashtable相比,它并不是对整个哈希表上锁 阅读全文
posted @ 2020-12-20 20:31 zliawk 阅读(174) 评论(0) 推荐(0)
摘要: 正题 CompletableFuture是JDK1.8才出现的,至于是否拥有很强大的功能其实我也未在工作上实践过,不过话说回来,即使实践过当时的我也是看不懂地,因为我现在才有时间来对它做一个了解,在此之前先来看看它的父接口-CompletionStage与Future。对于CompletionSta 阅读全文
posted @ 2020-12-20 20:21 zliawk 阅读(108) 评论(0) 推荐(0)
摘要: 前言 由于最近在了解IO相关知识,而正好看到了nio,这是我以前从来没接触过的,虽然它很早就出现了,所以先来看看有关于它的一些基础。探索ByteBuffer源代码是基于JDK1.8版本的,ByteBuffer的父类是Buffer,通过阅读注释后对Buffer总结如下: 缓冲区是特定基本类型的元素的线 阅读全文
posted @ 2020-12-20 20:16 zliawk 阅读(179) 评论(0) 推荐(0)
摘要: 前言 在认识红黑树之前,最好你已经认识并掌握了二叉树与平衡二叉树(AVL)。AVL树是高度平衡的二叉树,它的时间复杂度大约是O(log2n),即使在最坏的情况下也是。其实AVL树最复杂的地方在于删除节点重新平衡时的处理,有可能需要多次旋转节点。而红黑树相对于AVL树降低了平衡要求,它使用红黑两种颜色 阅读全文
posted @ 2020-12-20 20:12 zliawk 阅读(75) 评论(0) 推荐(0)
摘要: 前言 上一篇文章只是简单地认识下二叉树,并未提到它的缺陷。数据结构的好坏取决于时间复杂度,由于每次操作(插入、删除、查找)需要与节点比较来选择进入到左子树还是右子树,也就是说每次比较都会排除一些可能(选择左右其中一侧),当然了这是对于随机均匀分布的二叉树来说,它的时间复杂度是O(log2n),但是对 阅读全文
posted @ 2020-12-20 19:47 zliawk 阅读(196) 评论(0) 推荐(0)