当前位置: 首页 > 面试经验 >

【26日常】掌上先机 timeline+ 面经汇总

优质
小牛编辑
58浏览
2024-12-07

【26日常】掌上先机 timeline+ 面经汇总

timeline
笔试 11.20
技术1面 11.21
技术2面 11.25
hr面 11.27 (群面)
一、笔试
选择10道 主要是sql java 计网的题 不难就不多说
1. 判断sql对不对,功能问题
2. Java语言语法问题,比如构造器问题,初始化问题,接口里面能有什么,不能有什么。网络协议相关
简答题
1. 队列的Java实现,怎么实现阻塞队列,添加什么成员变量,实现一个阻塞添加元素的方法
2. Java的线程状态 以及状态转换条件
编程题
1. 订单号少一个,你得找到他
2. 完全平方数
二、技术1面
1. 集合部分:问hashmap底层原理
2. hashmap是否线程安全
3. 线程安全用什么,hashmap怎么用?或者用其他的api比如concurrentHashMap
4. redis问:项目哪部分用了? 我说的是视频模块,比如视频id + 视频访问地址,项目哪里用?
5. jvm虚拟机 问垃圾回收算法 标记清除 复制 标记整理 CMS(整个流程)(初始标记、并发标记、最终清理)优缺点
6. gc年轻代晋升老年代的情况有哪些(他说4个)
7. gcroot对象?怎么判断对象是否存活?
8. jvm参数
10. 怎么查看内存泄漏问题 有哪些命令 哪些工具?
11. jmap jstat命令的作用,干啥用?
12. arthas我用过哪些功能,具体做了什么?
13. 我自己开发的arthas工具 怎么实现的,基于什么原理,使用什么技术?
14. mysql索引优化的方法?怎么优化?怎么排查慢sql?
15. mysql组合索引?排查慢sql引出的?
16. mysql组合索引失效的场景?
17. MQ怎么保证消息不丢失?
18. 防止重复投递?怎么实现消息的幂等?
19. 项目:性能优化? 实现了什么优化?哪部分做了优化?
20. 项目:缓存怎么实现同步?缓存怎么添加的?预热?还是别的?
21. 项目:缓存查不到怎么办?
22. 项目:缓存三兄弟?项目里你是刚开始就考虑了?还是后期进行优化?
23. 项目:缓存穿透?数据两两都不在?解决:bloom过滤器?
24. 问:10亿数据 需要多少空间存储,比如命中率8 90左右?
25. 问题:实际10亿数据,也不需要太大的空间,所以可能没必要说减少空间占用,设计90的命中率?
26. bloom过滤器的底层原理,bitmap实现,3次hash确定是否存在?
27. bloom过滤器的特点?查有不确定,查没有是确定的、
28. 算法题:和为k的子数组个数,不能用滑窗,因为不满足递增顺序,我写过
三、技术2面
1. 讲rpc项目(我当时讲了15分钟-20分钟)
2. 项目:rpc的底层思路(服务提供、服务注册、服务发现(redis、zookeeper、nacos、eureka)、服务的使用者、
3. 项目:什么叫rpc,为啥要有 rpc(远程过程调用、分布式系统里,不同实例、组件提供不同的功能、分模块开发、组件提供服务
4. 项目:rpc项目的难点(技术选型、序列化算法的选择)nacos、eureka、redis、zookeeper、或者序列化算法jdk、json、protobuf各自的优缺点,为什么要选择protobuf这个序列化器
5. 项目:rpc框架技术实现的参考(openFeign、dubbo)参考的内容有哪些(基于接口的请求调用 与 底层的从api调用到底层网络协议的转换。
6. 项目:因为我说了基于openFeign,所以他问我openFeign的实现思路(首先通过接口,获取本次调用的远程api的元数据metadata,然后通过nacos拉取服务列表数据,通过Ribbon组件进行负载均衡,随机、轮询、一致性哈希等,然后通过动态代理CGLIB 以及 序列化器实现 api调用到底层网络报文的转换,基于LTC解码器实现粘包半包问题的解决,然后在此基础上自定义协议,设计魔数,版本号考虑后续升级,以及远程调用消息命令编码等。
7. 项目:为啥要开发这个项目(我说基于第一个项目的实际需求,之前考虑使用openFeign和dubbo,然后因为学习netty和轻量化rpc框架,考虑自定义框架。然后将自己的RMI-RPC框架应用到项目里,进行项目技术的升级。
8. 科研课题:加密(我讲了一下具体的研究思路,和技术点,静态的实现和问题、引出动态,然后检测用ML、分类用DL、提取更丰富的特征)(10分钟左右)
9. 学习技术的大概思路:成熟技术:先看黑马视频,然后了解全局,之后根据需求,买书,看具体的底层原理和实现,针对性的看,不会从头看到尾)
10. 对于新技术:主要看csdn或者稀土掘金博客,了解大致,然后或者看官方文档。我当时说如果基础一般的话,看文档可能有阻碍,也就是看文档,分不清重点和非重点,除非有一定的经验和基础之后再看。
11. 给了一道题,这里主要考察 1. 栈帧 Java虚拟机栈 2. finally的特点 3. 还有普通类型和包装类型 4. return并不是直接结束方法(至少有finally并不是这样) 5. return将结果放到栈帧里面的返回空间内部
这里 普通类 和 包装类 结果都是0,需要注意,return的功能。
栈帧还没弹出的时候,根本不可能执行后续的代码。我这里讲了一下jvm虚拟机栈的思路。
10. Mysql 写一个sql,有一个订单表(userid,create_time,其他字段)现在要查询指定用户在某个时间段内的订单信息,sql怎么写?
11. 如果说,数据量一亿、并且create_time区分度高,userId区分度低,怎么解决刚才那个sql查询慢的问题?(数据量大考虑进行分库分表,create_time区分度高,更适合在其上面创建索引。这里我讲了where条件书写顺序问题,讲错了,实际上mysql优化器会根据具体的索引情况进行字段优化。书写顺序和实际执行顺序不一定一致)
12. 问题:我当时讲了联合索引(他说联合索引书写也没顺序要求,这个得看)
13. 问题:你的技术和leader技术相左,你会怎么处理(总结提出书面技术报告,然后提交给leader看,主要讲了不同层面看问题角度不同、可能还有技术的开源与否等问题、安全问题等)
14. 问题:如果你是leader、组员这样意见相左,你怎么处理(我会解释不是技术不行,具体不采用的原因)
15. 问:你其实可以不解释的,为啥要解释(我说我性格是这样,而且维持团队的和谐关系,对于后续开发和其他进展更好一点)
反问:公司部门业务(供应链相关 1688 和 小微企业数据互联、组技术很多 java 大数据技术 还有ai技术都有涉及)、面试(最后一个hr面试)#掌上先机##牛客创作赏金赛##我的求职思考#
 类似资料: