1. cookie, session, token 是什么,各有什么缺点?
    2. 字典树定义?
    3. 数据库用户表的设计?

    MD5 + salt

    1. mysql 使用 uuid 作为主键有什么缺点?

    uuid 是 128 位,即 16 字节的通用唯一标识,会根据当前时间、计数器、硬件标识等数据生成,保证唯一性,常用于分布式系统中作为主键。因此如果用作 mysql 的主键,mysql 的默认存储引擎是 innodb,会将记录按照主键升序排序构成聚簇索引(B+ 树),由于 uuid 的无规律性会导致记录分布散乱,在插入一条记录时,会产生随机 IO(目标页已经刷到磁盘并从缓存中移除),此外还会导致频繁的页分裂,增加磁盘 IO,而页分裂又导致页变得稀疏,被不规则填充,做一次 OPTIMIZE TABLE 来重建表并优化页的填充需要一定时间。

    1. 给定一组规则,比如遇到 “aaa” 替换为 “bbb”,实现字符串替换?

    正则表达式

    1. topK:寻找数组中前 K 大的元素?

    2021.8.13字节一面 - 图1

    1. B+ 树?
    2. 单例模式?

    分为饿汉式与懒汉式。用 Go 实现:
    饿汉式:在 init 函数里面初始化
    懒汉式:使用 sync.Mutex 互斥锁或使用 sync.Once

    1. TCP 和 UDP 的区别?
    2. 为什么 TCP 是可靠的?
    3. 三次握手和四次挥手?