【社招面经】欢聚时代面经(四面)-Java开发工程师

一面 (基础技术面)

1.redis的几种数据类型,redis是单线程的,如何优化? redis为什么能做到这么快 ?
2.Spring的核心设计理念,SpringMVC的请求流程,MVC的分层在Spring中的实现。
3.ORM框架如何配置主从数据源,Mybatis原理
4.垃圾收集器用的哪种?CMS和G1的区别,讲一讲CMS垃圾收集的步骤,哪些步骤是并发哪些是并行。知道哪些垃圾收集算法
5.数据库索引了解多少?组合索引的最左原则,innodB和mylSAM的使用场景和区别,簇族索引和非簇族索引的存储区别
6.sql优化怎么做,如何判断sql能否用到索引或者大约需要扫描多少行数据。
7.HTTP1.0/1.1/2.0 HTTPS的区别与特性
8.讲讲NIO的原理与实现?NIO用到了哪个经典技术思想?JDK1.8中NIO有做什么优化
9.SpringMVC、SpringBoot、SpringCloud之间的关系?SpringCoud的注册发现与RPC的实现。
10.知道哪些RPC的方式?有哪些框架?如果让你设计RPC数据交换报文格式你会怎么设计?最重要的是什么?
11.用过哪些日志框架、日志框架间的比较?
12.Java中的锁有哪几种?Synchronized 的特性和底层实现?ReentrantLock了解么?AQS锁了解么?
13.讲讲Java经典特性封装继承多态中的继承,Java的继承有什么缺点?
14. wait()、notify必须在什么情况下使用

二面(经理面)

1.讲讲你项目中的RocketMq服务化
2.讲一讲Java中的锁知道多少
3.有5000w数据的场景,如何做查询性能优化
4.线程、进程、协程的关系。
5.知道Go么,有没有学习过,排不排斥新语言的学习使用。
6.nginx的高可用,redis的高可用,redis的集群方案,一致性哈希和哈希槽模式下缓存服务器宕机,数据如何迁移
7.怎么让一个定时任务在集群模式下只有一个实例执行?怎么实现分布式锁?怎么高可用?怎么保证一定有且只有一个实例的定时任务成功。

三面 (部门领导面)

1.讲讲你项目中的高可用实现,知道zookeeper***算法么?这个nacos如何实现的一致性,知道raft的原理么?***的机制是什么样的?具体是怎么投票的?
2.讲一讲DNS原理,DNS的轮询规则是怎样的,一个DNS请求是怎样的,如何使用自己的DNS服务器
3.如果现在有一个活动,一共赠送用户100000点券,有一个获取点券的按钮,一个用户只能获取一次,获取的点券算法是一个函数do(s,l),s是用户的等级,L是目前剩余的点券。在这个业务场景下,最需要考虑的是什么(不是多线程竞争问题)
4.现在有一个游戏,玩家有一群建筑,这些建筑一开始是1级,然后点击升级按钮会扣除金币,同时建筑进入升级倒计时。如何设计这个建组等级相关的数据存储?如果有一个排行榜显示用户的建筑等级排行怎么办?如果用户升完级就退出,排行榜怎么保证排名的正确。用户下一次进来如何保证时间的准确性。
5.在一个场景下:客户端使用TCP连接服务端通信。服务端如何检测出客户端断开连接?发送心跳是客户端发送好还是服务端发送好?如何在不用客户端/服务端发心跳包的情况下可以检测得到客户端tcp连接已经异常断开?

四面(Hr面)

1.问了一些个人信息,之前公司的情况,个人在公司所处的位置,
2.问了下学习方法,个人长处,最有成就感的事情
3.问了对技术的看法
4.目前薪资期望薪资
5.最快入职时间

目前已拿offer

本文本人于9月16日在简书发布,受牛客网工作人员邀约前来分享,顺便新增一些自己目前对于当时面试的问题新的看法

附:面试部分问题解析

一面二面主要都是些基础的知识和方案,主要讲讲三面的几个问题。三面我答的不是很好,主要讲讲目前来看我的理解
1.这个主要考察对***算法的了解程度吧,建议如果想要了解一个知识就把这个知识了解,作为程序员需要有专研精神,不要一知半解。这样很被动
2.这个主要考察一些网络知识
3.我觉得这个活动主要需要考虑用户的交互问题。以及用户体验。(比如用户最后一个领,但是点劵额度不够了,怎么办?是超额给客户还是客户在点券到手前不告诉客户能领多少)
4.点升级后扣除金币,然后记录点击升级的时间戳,不更新等级,等下次访问这条数据的时候计算时间查并更新等级并返回。如果还没到可以升级的时间则可以返回精确的一个时间。
5.这个问题面试官主要想要考察对tcp的理解还有tcp客户端注册的问题。由于这方面我不是特别懂,所以没有吻下去。这个问题可以等同于"实现tcp长连接(注册服务),为什么tcp协议自带keepalive还需要自己再定义keepalive心跳包"。

  • 1.keepalive默认太长了,不利于业务尽快时间的判断出是否在线。
  • 2.如果我们使用了***,比如说nginx 的4层***,socks5等等, 那么这些***是不会转发keepalived的包的
  • 3.手机等智能终端上网时,运营商为了防止信令资源不够用,他们的核心网会做一些探测,比如如果某个socket超过60秒没有数据往来,那么就会把socket给关掉,有些运营商可能是45秒,所以我们的心跳包一般设置要低于45秒。

最后,感谢欢聚时代给我这个机会~
感谢牛客网的邀请~ 顺便赞美一下,牛客网的markdown编辑器写起来很顺手,很人性化~

#社招##面经##欢聚集团##Java工程师#
全部评论
老哥,几年经验?
1 回复
分享
发布于 2019-11-18 09:58
大佬!!!! 欢迎把本篇面经链接帖到社招面经活动下,加精贴可获100元京东卡~~ https://www.nowcoder.com/discuss/311389
点赞 回复
分享
发布于 2019-11-01 11:04
乐元素
校招火热招聘中
官网直投
感谢大佬分享!!
点赞 回复
分享
发布于 2019-11-01 11:12
好想去这家公司啊
点赞 回复
分享
发布于 2019-11-07 18:02
点赞 回复
分享
发布于 2020-06-16 14:26

相关推荐

5 104 评论
分享
牛客网
牛客企业服务