更多服务
【社招面经】欢聚时代面经(四面)-Java开发工程师
日期:2022-03-28 浏览

  广州饿了么骑手收入情况 小编:艳芬 536阅读 2020.11.11 广州饿了么外卖骑手月收入:
¥8.7K / 月平均工资,数据统计来自近一年 142 份样本,截至 2020-11-11。
广州饿了么骑手工资待遇水平范围:
薪酬区间: 3K - 15K,最多人拿:8K-10K。
工资标准范围工资 占比率
3K-4.5K 2.8%
4.5K-6K 0.7%
6K-8K 23.2%
8K-10K 55.6%
10K-15K 17.6%
说明:广州饿了么骑手平均工资 ¥8.7K,其中拿 8K-10K 工资的占比最多,达 55.6%,数据统计依赖于各平台发布的公开薪酬,仅供参考。

  【一面 (基础技术面)】

  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

   附:面试部分问题解析,一面二面主要都是些基础的知识和方案,主要讲讲三面的几个问题。三面我答的不是很好,主要讲讲目前来看我的理解

  1.这个主要考察对算法的了解程度吧,建议如果想要了解一个知识就把这个知识了解,作为程序员需要有专研精神,不要一知半解。这样很被动

  2.这个主要考察一些网络知识

  3.我觉得这个活动主要需要考虑用户的交互问题。以及用户体验。(比如用户最后一个领,但是点劵额度不够了,怎么办?是超额给客户还是客户在点券到手前不告诉客户能领多少)

  4.点升级后扣除金币,然后记录点击升级的时间戳,不更新等级,等下次访问这条数据的时候计算时间查并更新等级并返回。如果还没到可以升级的时间则可以返回精确的一个时间。 5.这个问题面试官主要想要考察对tcp的理解还有tcp客户端注册的问题。由于这方面我不是特别懂,所以没有吻下去。这个问题可以等同于实现tcp长连接(注册服务),为什么tcp协议自带keepalive还需要自己再定义keepalive心跳包。1.keepalive默认太长了,不利于业务尽快时间的判断出是否在线。2.如果我们使用了***,比如说nginx 的4层***,socks5等等, 那么这些***是不会转发keepalived的包的 3.手机等智能终端上网时,运营商为了防止信令资源不够用,他们的核心网会做一些探测,比如如果某个socket超过60秒没有数据往来,那么就会把socket给关掉,有些运营商可能是45秒,所以我们的心跳包一般设置要低于45秒。

  
最后,感谢欢聚时代给我这个机会~