2021.4.1 59min 1.自我介绍(才说了40s左右被打断) 2.熟悉mysql吗?上来就是一个场景题(A字段字符型全匹配,B字段数值型范围查找,要建什么样的索引——》联合索引) 3.hashmap的底层,扩容会怎样? 4.concurrenthashmap是否线程安全,如何实现 5.1.8之后hashmap如何优化,除了红黑树之外? 6.mysql隔离级别,答了未提交读马上就被打断了,未提交读怎么实现的(加写锁),只加写锁就可以吗? 7.场景题:在mysql的默认隔离级别下 有两个事务:事务A和事务B 第一个瞬间:事务A begin 第二个瞬间:事务B begin 第三个瞬间:事务A update t set k=2 where id=1 第四个瞬间:事务B update t set k=3 where id=1,,这时候会发生什么嘛? 第五个瞬间:事务B select k from t where id=1,,这个时候k等于多少?(面完试我才知道4的时候会卡住,但我当时瞎猜了。。) 第六个瞬间:事务A提交 第七个瞬间:事务B再读一次k,k是多少? (这一题直接给我问懵) 8.关于项目,websocket长连接,如果有很多websocket的长连接,要怎么做?nginx怎么结合?(这题记不大清了) 9.select、epoll,epoll的优点 10.高并发的一些题,不会 11.redis zset的底层(dict+跳表),rehash的具体操作,为什么采用渐进式?(没答上来)redis是单线程还是双线程?(单线程),那所以为什么渐进式? 12.TCP四次挥手为什么会有大量的time wait 13.知道NIO吗?什么场景下使用?(答了BIO、NIO、AIO,和八股文的适用场景)然后又是一道场景题。。 (1)连接数少,传输的数据量大 (2)连接数多,传输的数据量小 (3)连接数多,传输的数据量大 以上三个场景分别采用哪一种? 14.mysql的底层实现 15.voliate关键字 16.单例模式 17.代码题(感谢评论区朋友的提醒,来自leetcode134) 环形路上5个加油站,一个数组e表示每个加油站能加的油,数组c表示到下一个站点要消耗的油,判断能否回到起点,可以的话输出站点编号 (太紧张没写出来,讲了讲思路。暴力是吧。。) 18.反问