快手2面:主要是情景题
1.restful中get和post如何设计
2.解释get和post及其区别,get有body吗
3.TCP为什么是3次握手,2次不行?
4.redis,和数据库数据不一致问题,怎么解决?线上环境中,大量请求没有命中redis,不能去查数据库,该怎么操作? (我没明白什么意思?后来想了一下是不是想问缓存穿透、雪崩之类的)
5.写sql:
班级表:班级id,学生id, 学生信息若干字段
成绩表:学生id,课程,分数
查询每个班级第一名的总成绩及学生信息?
6.可以不建立主键吗?没有主键在进行插入查找时有什么区别吗,比如数据表中有(A,B,C),再插入一条(A,B,C)。
7.mysql索引失效情况
8.mysql索引的结构,以及B+树叶子和非叶子节点存储的内容,如何执行查询的
9.2个线程,依次执行了A、B操作,A为普通方法,B为static方法,A和B使用synchronized修饰,第二个线程会被阻塞吗?分析执行情况。
10.java中volatile, 100个线程执行100次+1,结果?<=10000。为什么出现线程安全问题?volatile只保证可见性不保证原子性,叙述volatile原理和问题。怎么解决该问题?synchronized或CAS。CAS原理,java中如何使用,java中哪个包哪个类?
11.算法题:单链表循环右移k(k可能很大,远超过链表长度),只能遍历一次
感兴趣的大佬可以在评论区写写回答。