08 2021 档案
摘要:1.扩容条件 容量不够,即需要的容量>数组的长度 2.如何扩容 新数组的容量是原数组的1.5倍,复制原数组到新数组中 3.无参构造第一次添加元素 无参构造第一次添加元素时,需要的容量是10 > 数组的长度0,扩容后容量为10
阅读全文
摘要:CopyOnWriteArrayList是并发安全的List,其底层数据的存储仍然是靠Object[],重点在于它如何实现并发安全的,还是比较简单的 1.初始化 我们可以看到其实就是创建了一个长度为0的数组 2.add元素 每次添加元素都会加锁,同时调用Arrays.copyOf方法将原数组的内容拷
阅读全文
摘要:#jdk1.7分析 ConcurrentHashMap采用 分段锁的机制,实现并发的更新操作,底层采用数组+链表的存储结构。 其包含两个核心静态内部类 Segment和HashEntry。 Segment继承ReentrantLock用来充当锁的角色,每个 Segment 对象守护每个散列映射表的若
阅读全文
摘要://其实整个算法的思路就是把 所有数据分为一半大的,一半小的,放在两个堆中 //我们每次取中位数,只需要关心堆顶元素即可 class MedianFinder { PriorityQueue<Integer> queMin; PriorityQueue<Integer> queMax; public
阅读全文
摘要:#HashMap底层数据结构 #红黑树 我们都知道,jdk1.8以后 HashMap的底层是由数组+链表+红黑树组成的,那么什么是红黑树? ##二叉搜索树(二叉查找树) 我们都知道二叉树,即每个节点最多有两个子节点。 一颗无序的二叉树,如果我们要找树中的某个节点应该怎么做? 遍历树的每个节点,直到找
阅读全文
摘要:单例模式 某个类只能存在一个对象实例,且该类只提供一个取得其对象实例的方法(静态方法) 使用场景:需要频繁创建和销毁对象或创建对象消耗过多又经常用到比如数据源,session工厂 饿汉式(静态常量) 1.构造器私有化(防止外部new) 2.类的内部创建对象(private,final,static)
阅读全文
摘要:#1.K 站中转内最便宜的航班 如果不考虑“最多经过K站”这个条件,这就是一道求最短路问题。 但是现在有了条件,就是有限制的最短路问题。我们考虑用dp来做。 可以看到当前状态,只与之前状态的 经过多少站,在哪一站 有关,因此是个二维dp class Solution { public int fin
阅读全文
摘要:#日志 ##错误日志 MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息。错误日志的命名默认为 主机名.err。 通过show variables like '%log_error%';我们可以查看错误日志的位置 ##慢查询日志 慢查询日志
阅读全文
摘要:##什么是状压DP: 动态规划的状态有时候比较恶心,不容易表示出来,需要用一些编码技术,把状态压缩的用简单的方式表示出来。 典型方式:当需要表示一个集合有哪些元素时,往往利用2进制用一个整数表示。 动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的就是那种状态很多,不
阅读全文
摘要:##0.系统调用,用户态,内核态 cpu用户态下只能执行一些指令访问有限空间的内存地址,因此需要切换到内核态,内核态可以执行所有指令,访问任意的内存地址,拥有最高的权限 用户态到内核态的唯一方法:中断(系统调用就是一种中断)。 中断又分内中断和外中断,内中断是指中断信号由CPU发出与当前执行的指令有
阅读全文
摘要:我们首先需要了解二级IP地址和三级IP地址 可以看到三级IP地址相较二级IP地址而言,多了几位来表示子网号(也就是说三级IP地址下进行了子网划分)。 我们以A类网络为例,假如一个A类IP地址为192.168.3.4 A类网络的子网掩码为255.0.0.0,写成二进制也就是 11111111 0000
阅读全文
摘要:#概念 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了
阅读全文
摘要:原文链接:https://mp.weixin.qq.com/s/6EpeHAF5UmFzEuaQPWjdTw #1.数据库引擎不支持事务 这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。 根据 MySQL 的
阅读全文
摘要:#简介 分布式寻址算法是很重要的内容,不了解这些算法,也就不能透彻的了解各种分布式中间件的原理。简单说一下这些高大上的寻址到底是个啥意思,比如在elasticsearch中,采用的是多分片,每个分片上存储的是不一样的数据,是一种并集关系。比如我们通过_id去搜索一条数据,elasticsearch怎
阅读全文