算法
链表排序
对链表进行排序,可行思路如下:
其中,归并排序为最佳选择,C++ 标准模板库 STL 内部采用的便是 归并排序 。
操作系统
五种IO模型分别是什么
虚拟内存是什么
零拷贝技术
数据库
四大隔离级别分别是什么
为提升吞吐速度,数据库事务必须能够并发执行,但事务并发会带来很多问题:
- 脏读
- 不可重复读
- 幻读
为解决这些问题,数据库提供了以下四种隔离级别:
读未提交
读已提交
可重复读
串行化
索引在什么情况下会失效
- 查询索引包含 or ,可能导致索引失效;
- 查询条件字符串字段必须用引号括起来,否则索引失效;
- like 通配查询,可能导致索引失效;
- 联合索引查询时不满足最左原则,导致索引失效;
- 在索引列上使用数据库内置函数,导致索引失效;
- 对索引列做运算(+ - * /),也会导致索引失效;
- 索引字段使用
!=
、<>
和not in
等操作符,导致索引失效; - 索引字段使用
is null
、is not null
,导致索引失效; - join 查询关联字段编码格式不一样,导致索引失效;
- 数据库评估采用全表扫描更快,则不使用索引;
分布式系统
如何实现分布式锁
如何生成分布式ID
什么是雪花算法
雪花算法( Snowflake )是一种生成分布式全局唯一 ID 的算法,最初由 Twitter 提出,并用于生成推文 ID 。雪花算法生成的 ID 通常称为 Snowflake ID ,由 64 个比特位构成:
- 最高位总是 0 ;
- 接着 41 位是时间戳,精确到毫秒;
- 接着 10 位表示主机 ID, 防止冲突;
- 其余 12 位是每台主机维护的自增序号,使得主机能够在同一毫秒内生成多个 Snowflake ID ;
网络协议
TCP如何保证可靠性
HTTPS通信过程
信息安全
对称加密和非对称加密的区别
为保证数据安全,可以采用加密算法,选择一个密钥对明文进行加密,得到不可解读的密文。
- 明文:原文,即未经处理的数据;
- 密文:加密后的结果,无法从中解读出原文内容;
- 加密:将明文转换成不可解读的密文的过程;
- 解密:将密文转换回原文的过程;
- 密钥:加密和解密过程中使用的参数,即密码;
- 加密算法:即加密和解密的计算步骤;
通常加密算法是公开的,但密钥是私有的,必须妥善保管。对称加密算法在加密和解密的过程中,使用的是同一个密钥。而非对称加密算法的密钥是成对的,使用其中一个密钥加密得到的密文,只能用另一个密钥才能解密。参考文章:
【小菜笔记】系列文章首发于公众号【小菜学编程】,敬请关注: