一面
1.在字节的实习做了哪些事,设计了什么样的方案,解决了什么问题
2.内容查询能支持多大的并发?我说QPS只有几十;问流量放大1000倍的情况下,怎么应对?答限流,除了限流呢?就是要抗住1000倍压力。脑抽想到消息队列,问我查询用消息队列怎么削峰,查询过来放到消息队列再去查,我就觉得不太对了,赶紧换思路;然后想到缓存。
3.缓存和数据库怎么保证数据一致性?答用先更新数据库再延时双删,提到db更新成功还未删除缓存,有其他读请求读到旧值怎么处理?我说只能保证最终一致性,如果要强一致性需要加分布式锁。问:那分布式锁怎么实现的?
4.网络IO有哪些模型?IO多路复用是同步还是异步?
5.讲讲IO多路复用的实现原理,讲讲select和epoll的区别,epoll水平触发和边缘触发了解吗
6.linux 的命令用过哪些?我说我用的最多的是ls cd vim
7.Java里的垃圾回收机制是怎样的?三色标记法了解吗?
8.HTTP协议了解吗,HTTP1.0和2.0的区别是什么
9.mysql索引的实现原理了解过吗
sql题:uer表id,name project表 uid score p_name,查询name='123'的同学得分前10的科目
算法题:leetcode 543 二叉树的直径,可选:同时返回路径
二面
闲聊:你本科不是计算机专业,没学过计算机专业课和计算机专业的同学有哪些差距?工作后考研的动机?
1.java官网或者springboot的源码看过吗?
2.java的垃圾回收机制了解吗
3.System.gc()了解吗,调用会发生什么?
4.堆和栈的特点?在Java中有哪些应用?
5.Java里是如何生成多线程的,有哪些方法和类?Java中线程有哪些状态?线程之间怎么通信的?
6.协程了解吗?用过Golang吗,python熟悉吗
7.Springboot有哪些优势?有哪些特点对开发者比较友好?答:约定大于配置,IOC和AOP机制;ioc和aop怎么实现的?
8.有哪些方法可以反射成一个类呢
9.在字节开发的系统用的微服务架构吗,讲讲系统的整体架构,微服务怎么做到松耦合?
10.怎么排查定位慢sql的?怎么解决的?
11.会写单元测试吗?处理过线上问题吗?Docker了解吗,dev/ops了解吗