Binary Search123456789101112131415int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(left <= right) { int mid = lef...
TCP/IP网络连接 注意网络状态的变化 12syn_sent -> established -> fin_wait1 -> fin_wait2 -> time_wait > closedlisten -> syn_rcvd -> established -> closed_wait -> last_ack ====...
为啥拉链用尾插不用头插? jdk 1.7 用的头插,但头插的问题就是resize:因为hash取值后放置是从后往前(头插,逆序链表方向)的,但是在resize时会重计算hash,此时是顺序遍历方向,那么就可能出现一开始A头插在B前,rehash时B 后进行rehash导致B 头插在A前。这样AB的顺序resize后就不同了。这样就会使得多线程时对引用的指向调整有问题,有可能造成循环链表了...
Mysql InnoDB InnoDB In-Memory Structures1、Buffer Pool: 未落盘前数据的缓存位置 - LRU,链表 Change Buffer: 要修改数据不在内存中时对应页修改的记录位置 记录到 Change Buffer时,同时记录 redo log,然后再慢慢把数据 load 到内存,load 过来后,再把 Change Buffer 里记录...
索引为什么采用 B+ tree Hash不支持范围查询 二叉树树高很高,只有B树跟B+有的一比。 B树一个节点可以存储多个元素,相对于完全平衡二叉树整体的树高降低了,磁盘IO效率提高了。 而B+树是B树的升级版,只是把非叶子节点冗余一下,这么做的好处是为了提高范围查找的效率。提高了的原因也无非是会有指针指向下一个节点的叶子节点。 explain索引命中id is null 和 id...
MySql Transaction事务如何保证 原子性: undo log binlog记载的是update/delete/insert这样的SQL语句,而redo log记载的是物理修改的内容(xxxx页修改了xxx)。即redo log 记录的是数据的物理变化,binlog 记录的是数据的逻辑变化。 binlog的作用是复制和恢复而生的。 主从服务器需要保持数据的...
文章笔记参考链接来自作者 敖丙 开源项目:https://github.com/AobingJava/JavaFamily 以及 Redis 设计与实现 以及 钱大的 Redis 深度历险 Redis 常见应用 记录帖子的点赞数、评论数和点击数 (hash)。 记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。 记录帖子的标题、摘要、作者和封面信息,用于列表页...
SummaryThe whole process of evolutionThe initial tiny site Application server needs much stronger CPU to control the complex business. Database server need much faster disk and larger memory to ge...
缓存参数无关算法 笔记参考链接: Cache Oblivious Introduce blog Cache Oblivious paper 假设 硬盘 存在 M bits,以 B bits 作为分页大小,缓存按页加载,介绍相关的缓存参数无关的命中算法,这里的参数指 B 转化问题: N 个整数, 按 B 个 一页,求最快找到 N 所在页的算法 算法低效但是参数无关: 二分查找假设 N 个整数本...
Debug 基础知识笔记 (一)JDK 1.4.x: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 JDK5-8: -agentlib:jdwp=transport=dt_socket,server=y,suspend...