【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面试)#掌上先机##牛客创作赏金赛##我的求职思考#
全部评论
这叼公司面试这么烦,工资就给一点点
6 回复 分享
发布于 2024-12-07 16:14 江苏
我这家公司的技术面都不问八股,上来就是自我介绍,然后50分钟的SQL场景题拷打
2 回复 分享
发布于 2024-12-07 17:14 湖北
超标
1 回复 分享
发布于 2024-12-08 14:27 湖北
这垃圾公司面这么难?
点赞 回复 分享
发布于 02-03 21:33 浙江
请问二面三面是电话还是腾讯会议之类的
点赞 回复 分享
发布于 01-02 10:49 山东
问的这么多 这么难!?
点赞 回复 分享
发布于 2024-12-29 12:49 北京
我的一面没有这么难,一面后是HR面,HR面完后后天技术复面
点赞 回复 分享
发布于 2024-12-16 15:46 云南
超标
点赞 回复 分享
发布于 2024-12-11 14:50 四川
我的问的很简单
点赞 回复 分享
发布于 2024-12-10 18:01 重庆
掌上面了一个实施管培生,有去的必要吗,base深圳
点赞 回复 分享
发布于 2024-12-09 17:37 广东
我一面0八股,二面0八股但是14,15题都一样
点赞 回复 分享
发布于 2024-12-09 15:06 浙江
我操真的很难
点赞 回复 分享
发布于 2024-12-08 19:05 广东
一个日常问这么难,所以大佬为啥不去面大厂啊
点赞 回复 分享
发布于 2024-12-08 15:44 上海

相关推荐

鼠鼠大三,回顾大二一整年的技术积累和实习经历,我觉得还是有很多值得总结和分享的内容。希望我的一些经验,能够为即将准备秋招和实习的同学们带来一些启发。由于我的技术栈偏底层,主要面向高性能方向,因此在求职时可以覆盖的岗位范围也相对较广。在今年,我拿到了以下几份offer:阿里巴巴淘天终端:主要方向为框架优化与 SDK 优化;Shopee 搜广推部门;某量化公司实习岗位接下来,我将围绕手撕代码、八股、项目、实习经历和场景题这几个方面,逐一分享我的经验。手撕在无论是大厂还是量化岗位的技术面试中,手撕代码都是极其关键的一环。它直接体现了你的编码能力、逻辑思维、问题建模能力。因此建议一定要系统性训练这部分内容。首先我推荐入门的话,可以先刷刷leetcode上hot100,理论上你刷完hot100对你面试就足够了(这里指的足够是你能把hot100基本都能很快的写出来).接下来你还想继续强化的话(面独角兽和量化),那我十分推荐这里面的 [题单](https://huxulm.github.io/lc-rating/zen),你按照里面题单刷,对能力提升我觉得是质变的.(具体刷是按照难度和自己的熟练度,觉得自己掌握了就跳200的熟练度的下一题)八股就是八股的部分.对于八股来说.你必须要掌握的,我觉得有三方面,一个是数据库,分布式,和redis.对于前两者来说 有比较好推荐的资源是cmu的15445和mit的6.824.这个对于你理解数据库和raft是很有必要的.这两者是相辅相成的,你学完这两者会让你直接猛猛提升理解.能力提升很多很多. redis的话,我推荐你读源码,redis源码1是不难,2是确实写的很好.又能提升读码能力,又能提升对nosql的理解.至于操作系统和计算机网络.因为掌握这两方面对于你对计算机里理解的提升是质变的,可以看linux早期源码和bsd网络协议栈源码(如果时间充裕的情况下),这对你阅读源码的能力的提升很大.但时间不够或者不感兴趣没必要看源码,浪费时间.语言方面的话,我是cpp,rust.我只能推荐这两个你要深入的理解的话,你可以先理解cpp,你就会发现rust就是严格板cpp.学cpp的八股有两本书,一本书stl源码详解,一本是modern effective cpp,照这两个学,再加上做个cmu的那个数据库任务,就足够了.rust的话,直接读官网教程就很ok了.反正最重要的还是理解,你得把他们理解贯通,在面试中随时切换,就很棒了项目对于项目来说,最重要的是现在的简历的项目同质化很严重.你需要给面试官眼前一亮的感觉,没必要做啥xx商场,xx外卖这些的.做个可以体现你能力,技术栈的项目就很ok,加上点啥想法,给面试官耳目一新的感觉就ok了(一定要有mysql优化,感觉面试官很喜欢问),最后在包装包装,就很ok了实习实习经历的话,你得要讲清楚自己做了什么,具体而言是什么.用了什么手段,怎么优化,把每一步都说清楚,这样的话,很给你加分的.比如我做了什么什么的优化,我为什么做这个优化,我是怎么发现这个的问题.然后把你试过的每一个方案都讲清楚.怎么进一步优化,最终结果是什么,有什么还值得更深一步的改进的地方.体现你对做个业务的逻辑的思考,面试官都是比较喜欢这种.场景场景题我感觉很容易问,天天问你各种场景,问你有一棵树怎么快速保存和恢复,问你怎么设计负载均衡的算法,问你怎么比较快速通知100万人.这些问题其实非常的考验自己的计算机能力和见识,这就是我为什么推荐去看看底层实现,这都是底层实现中比较常见的实现,例如第一个,分成保存索引和实际数据两块,负载均衡可以参考cfs,通知考虑推拉流,这更多体验你全方位的能力,可以多看看面经,然后有不懂的问ai,把这些都搞懂,就没什么问题了.多看面经 + 学会主动思考 + 不懂就问 AI,积累久了你也能应付自如。其他建议突击的话,你就面前一两天,几个小时刷刷,比如数据库,计网,os这些,然后具体看看你面试的那个部门的面经,具有参考的意义很大.总结总结大二这一年的成长,我最大的感受是,“真正打动面试官的不是包装,而是你对技术的理解深度与思考广度。”好好沉淀吧,希望我的复盘能为你在实习或秋招中提供一些方向感。如果觉得有用的话,给我点个赞吧
在写bug的芹菜很大...:合工之名,威震天下
没有实习经历,还有机会进...
点赞 评论 收藏
分享
评论
13
68
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务