3.9字节 DataLeap 部门日常实习一面
·
一、开场 & 背景
- 先做一下自我介绍。
- 上一段实习有 3 个月?是线下还是线上?为什么考虑换实习?
- 来字节的话,能什么时候到岗?计划实习多久?半年以上能接受吗?
- 期末和线下课怎么处理?
二、方向匹配
- 你对方向有什么看法?我们是大数据开发平台,你了解吗?感不感兴趣?
- 我们这边整体偏后端业务,但要求一些大数据基础——你能接受这样的岗位定位吗?
三、Java 并发基础
- 创建线程的方式有哪些?
- 你说到"避免单继承冲突"那个点,能再解释清楚一点吗?
sleep和wait的区别是什么?
四、RPC 项目深挖(Netty)
- 你简历里写了基于 Netty 的 RPC 框架——先从Java 语言层面的底层设计讲讲,整体是怎么做的?
- 你在框架里怎么用动态代理?能具体说一下吗?
- 你这个框架支持多语言?客户端有 Java/Python/Go?和 gRPC 是什么关系?
- 讲讲你框架里的 NIO 多路复用 是怎么做的?
- 讲讲 零拷贝 在你框架里是怎么用的?这是 Netty 提供的能力对吧?
- 你项目里还用了 SPI?怎么用的?举个例子。
- 为什么不用 JDK 自带的
ServiceLoader,而要自己写一个?
五、线程池
- 线程池用过吗?关键参数都了解吗?
- 拒绝策略有哪些?
- 你 RPC / Netty 里线程池怎么配置的?
- 四个关键参数(核心线程数、最大线程数、存活时间、阻塞队列)分别怎么设置?为什么这么设?
六、volatile
- 讲讲
volatile关键字的作用。(为什么需要它?解决了什么问题?)
七、Spring
- 解释一下什么是 Bean,什么是 IOC 容器。
- 常用的 Bean 作用域有哪些?除了 singleton 还用过别的吗?
- Bean 的生命周期了解吗?
八、算法题(限时 20 分钟)
- 代码相似度判断:输入两行代码,判断它们是否"相似"。相似的定义是:除了变量名和数值不同,其他部分(关键字、运算符等)完全一致。
- 例:
int a = 5和int b = 3→ 相似 - 例:
int a = 5和int a += 5→ 不相似
- 例:
- (编码过程中)符号要覆盖
=、+=、-=等,先按题目里给的 case 做。 - (Review)你的测试样例可能漏了几种情况,某些 case 没覆盖到——再检查一下。
九、项目挑战回顾
- 你做过的项目里最大的挑战是什么?花了多长时间解决?
十、上段实习追问
- 你说在上家公司被安排做边缘工作——你有没有主动沟通过想接核心任务?具体做了什么?
感觉这里是我不怎么会说话,确实不应该提到这个的,这个还是面试面少了没有经验,现在我倒是知道不能说这些负面评价的哈哈哈
面试官最后的反馈
优点:RPC 项目确实花了不少功夫,看得出来是自己独立完成的。
改进建议:
- 总结能力:项目是自己写的,但三个月前的内容遗忘较快,需要更系统地做技术总结。
- 表达能力:技术细节要讲得更有条理、更专业,把项目讲成一条主线,而不是零散的点。
- 代码调试效率:可能你平时更习惯 IntelliJ IDEA,这次用 VS Code 定位 bug 速度偏慢,20 分钟的题写了约 30 分钟。出 bug 很正常,但定位速度是可以练的。
coding的题目很简单,但是我确实很久没有写代码了导致确实有点菜了,equals比较这些基本的错误都有,但是这个还是我自己的问题。然后就是vscode确实是我头一次尝试使用,他让我打开IDE,我随便开了一个,这也是唯一一个没有用平台测试的字节的面试官,可能日常实习没那么严格吧
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)