2021-07-19 源码 ConcurrentHashMap源码分析 序ConcurrentHashMap,可以理解成是HashMap的线程安全版本,同样的,内部使用也是(数组 + 链表 + 红黑树)的结构来存储元素。同时相比于同样提供线程安全的HashTable,效率等各方面都有所提升 概述 ... 阅读全文…
2021-05-27 源码 ThreadLocal源码解读 序多线程共享可变数据时,涉及到线程见同步的问题,并不是所有的时候,都要用到共享数据,所以就需要线程封闭出场了。数据都被封闭在各自的线程之中,就不需要进行同步,这种通过将数据封闭在线程内而避免使用同步的技术称之为线程封闭。 适用场景 线程间数据隔离,各线程的 ThreadLocal 互不影响 方... 阅读全文…
2021-05-27 leetcode 死磕双指针 序双指针,一个看了脑子里就有画面的算法技巧,主要方式有: 快慢指针 譬如链表环系列问题 获取链表的第K个节点 应该也属于快慢指针吧 只不过是一个指针先移动一定步长,然后另一个两个指针再以同样的速度移动 头尾指针 适用于数组和字符串 根据使用场景,用于优化遍历的时间复杂度 滑动窗口... 阅读全文…
2021-05-21 网络 https总结 序引入一个新的概念的时候,必然先阐述其相关方面已有的实现有哪些缺点,新的概念解决了哪些缺点。所以~让我们看看HTTP有哪些却缺点 缺点: 明文传输,传输信息容易被窃听 —- 窃听风险 不验证通信方的身份,因此可能会遭遇伪装 —- 冒充风险 无法验证报问的完整性,所以通信的信息可能已遭篡改 —... 阅读全文…
2021-05-21 spring Spring IoC解读 序IoCIoC控制反转,意思就是将创建对象的控制权从我们自己硬编码来new一个对象反转到了第三方身上。IoC的主要实现方式是依赖注入,Spring中的依赖注入方式有:构造方法注入、settter注入、接口注入。 控制反转是一种思想 依赖注入是一种设计模式 IoC是一种可以帮助我们解耦各业... 阅读全文…
2021-04-20 LeetCode 死磕数学基础 前言LeetCode死磕系列十二: 数学基础 说实话,其实都是刷题都是数学的实现,不过感觉有些题目更加偏向数学应用,譬如蓄水池,等概率抽样…。 阅读全文…