高途课堂 Java工程师 社招面经
2.消息可靠性,消息重复消费。如果消息丢失,你应该怎么尽量地让用户觉得此次下单的
公平性?
3. Redis 性能为什么高?Redis的lua脚本,为什么能保证原子性?如果lua脚本在库存扣减
完以后执行出错怎么办?
4.项目如果要跟小公司进行对接,你会怎么做?
5. JVM 内存布局?GC算法?
6.请从操作系统以及CPU指令(怎么操作内存的)的角度去解释为什么会出现线程不安全?
7. http里面包含什么?
8. 两堆乱序扑克牌,要求合并成一堆有序的牌堆,怎么做?(归并+随便一个排序)时间复
杂度?
9.如果两堆1TB 的数据,要求合并成一堆有序的牌堆,怎么做?(归并+内部排序,分而治
之)
10.回到扑克牌的这个主题,要求把一堆乱序的扑克牌进行排序,如果要极致地压榨性能,
应该怎么做?时间复杂度能达到多少?(小智力题)
最后就是反问。
面试官开局就介绍自己部门以及他们版本发布的制度跟频率,面试官也说了主要考察我广
度。然后面试正式开始。
但全程就是像普通聊天一样,面试官他自己也会去解答自己问的问题,或者介绍业务跟技术
栈。
1. UDP跟TCP的区别及场景?
2. Mysql三范式?为什么会有这三范式?
3. 缓存中间件了解吗?Redis,Memcache?(缓存中间件广度)Redis有多少种数据结构?
应用场景?为什么高性能?
4. zk了解吗?(注册中心广度)
5. kafka 了解吗?(mq广度)(介绍了卡夫卡在他们业务上的使用)
6.微服务设计思想?为什么需要这样设计?好处?
7.了解过Golang 吗?说说你的使用感受以及理解?