网络:
- 为什么tcp 要三次握手,以及四次挥手中为什么有个time_wait的状态 --- https://www.cnblogs.com/cenglinjinran/p/8482412.html
- tcp 状态码含义:https://blog.youkuaiyun.com/iechenyb/article/details/78336826
- tcp 拥塞控制:https://blog.youkuaiyun.com/m0_37962600/article/details/79993310
- 如何防止http的sql注入:https://help.aliyun.com/knowledge_detail/40070.html?spm=5176.13394938.0.0.1af55daaKVcLbQ
python 预编译: https://www.cnblogs.com/sevck/p/6733702.html
golang 预编译: https://studygolang.com/articles/5963, 或者看看gorm是如何实现这个的。 - 如何理解tcp面向连接,udp面向无连接?:https://www.zhihu.com/question/51388497
- 理解tcp握手中的序列号:https://www.zhihu.com/question/53658729/answer/170274422
- TCP心跳包机制:https://blog.youkuaiyun.com/qq_33314107/article/details/80574137
操作系统:
- 进程间的通信:https://www.cnblogs.com/zgq0/p/8780893.html (缺少套接字的方式
- 进程线程协程:https://blog.youkuaiyun.com/daaikuaichuan/article/details/82951084
- 进程的调度:https://blog.youkuaiyun.com/qq_35642036/article/details/82809812 , 重点注意优先级抢占式调度处理存在的问题,以及这些问题如何解决? 优先级继承 和 设置优先级上限。以及注意下公认最好的调度算法:多级反馈队列调度算法
- 物理内存和虚拟内存:https://blog.youkuaiyun.com/lvyibin890/article/details/82217193
- 内存页的概念:
- 进程切换怎么实现的:https://blog.youkuaiyun.com/qq_40861091/article/details/102601719
mysql:
- 聚集索引和非聚集索引:https://www.cnblogs.com/s-b-b/p/8334593.html
- 索引碎片产生原因和处理方法:http://www.360doc.com/content/19/0326/14/12906439_824260806.shtml
- b树和b+树的区别:https://www.cnblogs.com/xueqiuqiu/articles/8779029.html
- 什么时候mysql会死锁:https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93%E6%AD%BB%E9%94%81/10015665?fr=aladdin, 并写一个会死锁的语句:https://blog.youkuaiyun.com/yuanren201/article/details/90520350
- explain 的字段含义是什么:https://www.cnblogs.com/butterfly100/archive/2018/01/15/8287569.html
- 为什么不用二叉树、hash而用b+树呢?: hash无序,做范围查询太慢,二叉树太高导致IO次数很多。B树没有解决元素遍历效率低的问题,b树每个结点都存数据,b+树只存索引,所以磁盘页能容纳更多节点元素,更“矮胖”;也就代表更少的IO操作,更快的效率。 https://blog.youkuaiyun.com/qq_38038480/article/details/81738079
- 索引的非叶子节点数据存在什么地方? 估计是在磁盘中吧。。。
- 隔离级别对应的业务场景是什么:https://blog.youkuaiyun.com/dcm6605/article/details/102218614
- 第一二三范式的理解:https://blog.youkuaiyun.com/sinat_27143551/article/details/80216842
- 常见的慢查询优化:https://www.jianshu.com/p/af48705f20b8
- 表锁和行锁怎么理解:https://www.cnblogs.com/jpfss/p/8890250.html
Redis:
- zset 的底层实现:ziplist or 跳表+hash:https://www.cnblogs.com/a8457013/p/8252011.html
- zscore、zrange的时间复杂度:zscore=O1 , 因为hashtable。 zrange=O(logN + M):跳表中有存储距离下一个节点的跳过的数据有多少。
- 如何防止缓存穿透? 当有人肆意使用不存在的id 来访问,导致所有的请求都会走到db:https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc, 不存在的id 也进行缓存,不过就是缓存的时间变短。
- 过期key 的删除策略是什么?:https://www.cnblogs.com/zjoch/p/11149278.html
- redis 哨兵和集群:https://www.jianshu.com/p/d6d2325a5ec7
排序:
- 堆排序:https://www.jianshu.com/p/0d383d294a80
- 桶排序:https://blog.youkuaiyun.com/developer1024/article/details/79770240
- 归并排序
- 希尔排序:https://blog.youkuaiyun.com/changhangshi/article/details/82744427 O(n^1.3~2)
- 为什么快排是最广泛使用的排序?: 感觉这个问题很难回答吧,只能说因为其平均性能最好:https://blog.youkuaiyun.com/qq_36770641/article/details/82669788
- 平衡二叉树的定义是什么、请手写: 平衡的(左右子树高度差不超过1)二叉搜索树。
- 平衡二叉树和红黑树有什么 区别:https://www.cnblogs.com/rednodel/p/9259134.html
kafka:
- 谈谈你对选举算法的了解:https://blog.youkuaiyun.com/xiaolongzaixian/article/details/88387694
- kafka 选主怎么做的?:https://blog.youkuaiyun.com/lixiang987654321/article/details/99674419
杂项
-
boolmfilter:https://www.jianshu.com/p/2104d11ee0a2
-
手写全排列
-
倍增法lca
int LCA(int x,int y){ if (depth[x]<depth[y]) swap(x,y); for (int i=19;i>=0;i--) if (depth[x]-(1<<i)>=depth[y]) x=fa[x][i]; if (x==y) return x; for (int i=19;i>=0;i--) if (fa[x][i]!=fa[y][i]) x=fa[x][i],y=fa[y][i]; return fa[x][0]; }
-