前言 随着大量新生的异步框架和支持协程的语言(如Go)的出现,在很多场景下操作系统的线程调度成为了性能的瓶颈,Java也因此被质疑是否不再适应最新的云场景了。4年前,阿里JV...
前言 随着大量新生的异步框架和支持协程的语言(如Go)的出现,在很多场景下操作系统的线程调度成为了性能的瓶颈,Java也因此被质疑是否不再适应最新的云场景了。4年前,阿里JV...
前面了解数据链路层、网络层 从传输层了解一次接口请求,数据包的收发流程。三次握手、传输数据、四次挥手,TCP传输控制协议 利用到的工具tcpdump Transmission...
NIO TODO 归档到Linux下 结合Linux 了解socket原理 什么多路复用 selector epoll poll 时间: 1个星期(不知道什么时候创建的这些...
MySQL利用MVCC(MVCC又是依据undo log实现的),在一个可重复读的事务执行过程中,读取到的数据都是事务开始时获取的快照,实现了事务见的隔离。而在锁部分,MyS...
事务 锁 索引 日志文件 数据文件 各种buffer flush等概念的串起来能够解释常见场景下 单个事务和多事务并发场景下,MySQL内部处理机制 在MySQL中,按照锁定...
这篇笔记主要目的是梳理清楚,一条数据的落地,中间会在哪些组件中有写入已知的有redo log, undo log, 索引,数据文件,写入的顺序是怎么样,完成到哪个步骤,就可认...
可以实现索引的数据结构有多种,包括哈希表、有序数组和搜索树等。 哈希表 key-value对,当做索引存在的缺陷: a.只能等值查询,不支持范围查询 b.存在hash冲突,严...
现在常规的应用系统中,每一个接口基本都需要执行多条更新SQL。这就要求多条SQL的更新要么全部生效,要么全部都不生效。这就是所谓的原子性,事务的四大特性之一。MySQL原生的...
关系型数据库了解。在web开发中,通常使用的是MySQL。所以以MySQL为主体学习。学习参照 极客时间 MySQL实战45讲 从某种层面来讲,MySQL系列也是实战阅读笔记...
Heap 堆 参照 一个优先级队列。PriorityQueue便是根据堆来实现的 找出前K个数(从大到小),构建一个容量为K的小堆,遍历序列,如果元素比堆顶的元素大,则替换之...
线性列表基于数组、基于链表ArrayList、LinkedList 栈 队列 散列表 树二叉树、搜索二叉树、平衡二叉树、红黑树、堆、B树、B+树 图???
Heap Sort-堆排序 以升序举例,将无序的序列构建成一个大顶堆(Heap),将堆顶元素(最大值)与序列中最后一个元素交换,这为一轮,能确定最大的元素。再对剩下的n-1个...
Quick Sort 快速排序 需求 对N个整数升序排序 思路 和归并排序一样,也是用的分治思想,但实现思路和归并排序不一样。 在数组中任意选取一个元素作为分区点(这里选择最...
Merging Sort - 归并排序 需求 对N个整数升序排序 思路 把数组分成两部分(递归均分,直至每部分只有一个元素),每部分先排序,然后合并有序的两部分。利用到了分治...
Selection Sort 选择排序 需求 对N个整数升序排序 思路 类似插入排序,分有序和无序两部分,每次从无序部分中找出最小的一个元素放到有序部分的末尾。 算法评判 时...
Insertion Sort 插入排序 需求 对N个整数升序排序 思路 假如将一个数插入到有序的序列中(升序),则将该数序列中的每个元素逐个比较,插入到正确的位置。对静态的数...
Bubble Sort-冒泡排序 需求 对N个整数升序排序 思路 进行N轮排序,每一轮选出最大的元素,在每轮对比中,相邻元素比较,如果前面元素大于后面元素,则交换两个元素位置...
Sort 经典排序算法,各自的时间复杂度,空间复杂度 https://itimetraveler.github.io/2017/07/18/%E5%85%AB%E5%A4%A...