一面

微布校园的分工如何?

在开发过程中学到了什么?遇到了什么难的问题?

如何解决缓存雪崩、缓存与数据库一致性问题?

查询响应速度从超时响应加快到900ms~1s是如何实现的?

讲一下雪花算法(当时从组成,为什么可以作为分布式id角度回答)

使用kafka实现UGC消息异步推送,起到削峰、解耦的作用,讲一下对削峰、解耦的理解。

Redis在哪一部分用的比较多?

讲一下http的三次握手、四次挥手?

为什么要进行四次挥手?

介绍一下udp和tcp之间的区别

什么时候用UDP?什么时候用TCP?

介绍一下对HTTP的理解

Cookie和Session的区别

介绍一下token

讲一下MySQL的索引,什么时候用到了索引,以及什么时候遇到过索引失效的?

介绍一下Redis的数据类型和持久化

如何通过Redis实现分布式锁?

Redis的淘汰策略有哪些?

介绍一下对多线程的理解

什么是线程池、为什么要使用线程池?

Java的异常有哪些?如何捕获异常?

对文件的上传、下载分别有哪些测试功能点?

算法题:把两个无序的数组合并成一个有序的数组

二面

为什么要选择面试测试开发这个岗位?

你觉得测开需要学习些什么方面的东西?

netty和直接裸写socket有什么区别?

什么是NIO?

为什么IO多路复用比多线程更高效?

Redis是单线程还是多线程的?为什么是单线程还能这么高效?

在多路复用的场景下,做一个哈希计算可行吗?会不会有什么问题?

使用netty实现IM实时通讯为什么不只使用websocket协议,而还要加上rpc协议呢?(应该是json-rpc协议。。。当时简历写错了)

netty的广播怎么实现的?

如果在通信过程中,客户端突然断开或者服务端进行升级,应该怎么解决这两个问题?

如果出现了断开重连的情况,用户重新登录会继续看到以前的消息吗?怎么实现的消息持久化?

介绍一下jwt和session的区别?(说一些token的优势)介绍一下CSRF攻击的应用场景,如何避免CSRF的攻击?

说几个Maven的常用命令

常用的map有哪些?TreeMap和HashMap的区别(实现的接口,时间复杂度,应用场景)

怎么实现多线程之间的同步操作? 主线程开启10个任务, 等这10个任务并发结束之后,再执行其他的任务应该怎么实现?

Java的新特性(介绍的Java8的新特性)

编码:实现a,b两个线程顺序交替执行