微信搜索:小大白日志

05 2021 档案

摘要:LRU:把最近最少使用或最近最久未使用的移除出缓存 MRU:把最近频繁使用的移除出缓存,如数据库层级的缓存,用户不可能连续查询大量同批次数据,此时就可以把这些大批量数据移除 布隆过滤器 适用于大数据量的缓存,如亿级别PV防止恶意url(PV:页面访问量page view) 拥有两级缓存:布隆过滤器- 阅读全文
posted @ 2021-05-30 23:33 明天喝可乐 阅读(99) 评论(0) 推荐(0)
摘要:当hashmap第一次插入元素、元素个数达到容量阀值threshold时,都会扩容resize(),源码: (假设hashmap扩容前的node数组为旧横向node数组,扩容后的node数组为新横向node数组) 1 final Node<K,V>[] resize() { 2 Node<K,V>[ 阅读全文
posted @ 2021-05-28 03:05 明天喝可乐 阅读(128) 评论(0) 推荐(0)
摘要:由红黑树的性质,插入一个新节点,一般用以下5种方法插入并转为新的红黑树 阅读全文
posted @ 2021-05-24 00:23 明天喝可乐 阅读(131) 评论(0) 推荐(0)
摘要:HashMap 是一个散列桶(本质是数组+链表),散列桶就是数据结构里面的散列表,每个数组元素是一个Node节点,该节点又链接着多个节点形成一个链表,故一个数组元素 = 一个链表,利用了数组线性查找和链表修改的便利性(横向=Node数组,横向只存放每个链表第一个节点,通过数组下标维持每个Node链表 阅读全文
posted @ 2021-05-20 23:55 明天喝可乐 阅读(75) 评论(0) 推荐(0)
摘要:@Transactinonal 注解在方法抛出RuntimeException类及其子类时、Error类及其子类时会回滚当前事务,使sql不提交; 只能作用于public的方法;写在类上时,代表给该类中所用public方法加@Transactinonal注解;写在方法上时,只给当前public方法加 阅读全文
posted @ 2021-05-16 10:07 明天喝可乐 阅读(219) 评论(0) 推荐(0)
摘要:lock()和lockInterruptible()都表示获取锁,唯一区别是,当A线程调用lock()或lockInterruptible()方法获取锁没有成功而进入等待锁的状态时,若接着调用该A线程的interrupt()方法中断该线程的等待: 如果A线程是通过lock()获取锁失败而进入等待状态 阅读全文
posted @ 2021-05-03 20:42 明天喝可乐 阅读(234) 评论(0) 推荐(0)