上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: 一、组成结构 1、数组Node<K,V>[] table 2、链表Node<K,V> next 3、红黑树TreeNode 二、put方法 整体流程图如下: 在执行put操作时,首先根据hash方法获取key.hashcode,之后根据hashcode通过取模运算(table[table.lengt 阅读全文
posted @ 2021-08-27 15:24 上官兰夏 阅读(112) 评论(0) 推荐(0)
摘要: 红黑树是平衡二叉查找树的一种。为了深入理解红黑树,我们需要从二叉查找树开始讲起。 BST 二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。 在理想的情况下,二叉查找树增删查改的时间复 阅读全文
posted @ 2021-08-27 11:04 上官兰夏 阅读(236) 评论(0) 推荐(0)
摘要: 一、集合的主要类关系图 二、接口api 三、set接口的实现类 1、HashSet,存储原理,是通过hashmap存储 public boolean add(E e) { return map.put(e, PRESENT)==null; } 特点: a.非线程安全类 b.无序的 c.值不可重复 2 阅读全文
posted @ 2021-08-26 17:22 上官兰夏 阅读(66) 评论(0) 推荐(0)
摘要: 一、简介 AQS全称为AbstractQueuedSynchronizer,它提供了一个FIFO(First in First out 先入先出)队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件,常见的有:ReentrantLock、CountDownLatch等。AQS是一个抽象 阅读全文
posted @ 2021-08-26 16:20 上官兰夏 阅读(5721) 评论(0) 推荐(1)
摘要: 一、简介 ThreadLocal是一个本地线程副本变量工具类,主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用。 二、适用场景 1、访问服务器时的用户信息暂存 2、数据库连接管理 三、ThreadLocal结构内部 从上面的结构图, 阅读全文
posted @ 2021-08-26 11:31 上官兰夏 阅读(98) 评论(0) 推荐(0)
摘要: 1、自定义TODO 阅读全文
posted @ 2020-08-06 17:52 上官兰夏 阅读(132) 评论(0) 推荐(0)
摘要: 一、简介 在多线程并发编程中synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。如果volatile变量修饰符使用恰 阅读全文
posted @ 2020-07-27 15:52 上官兰夏 阅读(179) 评论(0) 推荐(0)
摘要: 一、简介 在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了。本文详细介绍Synchronized的实现原理,减少获得锁和释放锁带来的性能消耗而引入的偏向锁和 阅读全文
posted @ 2020-07-22 16:43 上官兰夏 阅读(211) 评论(0) 推荐(0)
摘要: 1.针对一段逻辑,用传统的if...else... /** * 传统的 if else 解决方法 */ public String getCheckResult(String order) { if ("校验1".equals(order)) { return "执行业务逻辑1"; } else i 阅读全文
posted @ 2020-07-03 16:11 上官兰夏 阅读(529) 评论(0) 推荐(0)
摘要: centos7自带的gcc版本是4.8,通过gcc官网安装手册可知,依赖文件太多了,手动升级安装太繁琐。可以通过安装devtoolset的方式间接升级gcc至高版本 yum install centos-release-scl yum install devtoolset-7-gcc* scl en 阅读全文
posted @ 2020-07-03 11:06 上官兰夏 阅读(282) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 下一页