欢聚时代社招4面面经
一面 (基础技术面)
- redis的几种数据类型,redis是单线程的,如何优化? redis为什么能做到这么快 ?
- Spring的核心设计理念,SpringMVC的请求流程,MVC的分层在Spring中的实现
- ORM框架如何配置主从数据源,Mybatis原理
- 垃圾收集器用的哪种?CMS和G1的区别,讲一讲CMS垃圾收集的步骤,哪些步骤是并发哪些是并行。知道哪些垃圾收集算法
- 数据库索引了解多少?组合索引的最左原则,innodB和mylSAM的使用场景和区别,簇族索引和非簇族索引的存储区别
- sql优化怎么做,如何判断sql能否用到索引或者大约需要扫描多少行数据。
- HTTP1.0/1.1/2.0 HTTPS的区别与特性
- 讲讲NIO的原理与实现?NIO用到了哪个经典技术思想?JDK1.8中NIO有做什么优化
- SpringMVC、SpringBoot、SpringCloud之间的关系?SpringCoud的注册发现与RPC的实现。
- 知道哪些RPC的方式?有哪些框架?如果让你设计RPC数据交换报文格式你会怎么设计?最重要的是什么?
- 用过哪些日志框架、日志框架间的比较?
- Java中的锁有哪几种?Synchronized 的特性和底层实现?ReentrantLock了解么?AQS锁了解么?
- Java经典特性封装继承多态中的继承,Java的继承有什么缺点?wait()、notify必须在什么情况下使用
二面(经理面)
- 讲讲项目中的RocketMq服务化
- Java中的锁知道多少
- 有5000w数据的场景,如何做查询性能优化
- 线程、进程、协程的关系。
- 知道Go么,有没有学习过,排不排斥新语言的学习使用
- nginx的高可用,redis的高可用,redis的集群方案,一致性哈希和哈希槽模式下缓存服务器宕机,数据如何迁移
- 怎么让一个定时任务在集群模式下只有一个实例执行?怎么实现分布式锁?怎么高可用?怎么保证一定有且只有一个实例的定时任务成功
三面 (部门领导面)
- 讲讲项目中的高可用实现,知道zookeeper***算法么?这个nacos如何实现的一致性,知道raft的原理么?***的机制是什么样的?具体是怎么投票的?
- DNS原理,DNS的轮询规则是怎样的,一个DNS请求是怎样的,如何使用自己的DNS服务器
- 如果现在有一个活动,一共赠送用户100000点券,有一个获取点券的按钮,一个用户只能获取一次,获取的点券算法是一个函数do(s,l),s是用户的等级,L是目前剩余的点券。在这个业务场景下,最需要考虑的是什么(不是多线程竞争问题)
- 现在有一个游戏,玩家有一群建筑,这些建筑一开始是1级,然后点击升级按钮会扣除金币,同时建筑进入升级倒计时。如何设计这个建组等级相关的数据存储?如果有一个排行榜显示用户的建筑等级排行怎么办?如果用户升完级就退出,排行榜怎么保证排名的正确。用户下一次进来如何保证时间的准确性
- 在一个场景下:客户端使用TCP连接服务端通信。服务端如何检测出客户端断开连接?发送心跳是客户端发送好还是服务端发送好?如何在不用客户端/服务端发心跳包的情况下可以检测得到客户端tcp连接已经异常断开?
四面(Hr面)
- 个人信息,之前公司的情况,个人在公司所处的位置
- 学习方法,个人长处,最有成就感的事情
- 问了对技术的看法
- 目前薪资期望薪资
- 最快入职时间
拿到offer