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

双非本社招后端两年经验网易、字节、有赞面经(offer)

优质
小牛编辑
86浏览
2023-06-12

双非本社招后端两年经验网易、字节、有赞面经(offer)

前言

阿东最近两个月忙于复习和面试没有更新公众号(公众号:阿东编程之路),今天就把面经分享出来希望能帮到在找工作的朋友们。

先介绍下阿东的情况,阿东 21 年毕业于双非本的信息与计算科学专业,毕业一直在一家小公司做 Java 后端开发,最近觉得技术上没有成长,就想着看看机会,耗时一个月,最终通过了网易、字节、有赞、交个朋友后端岗位的面试。

由于阿东平时喜欢写博客、做需求时喜欢调研,所以八股文就简单复习了下,重点复习了项目。

面试这么多场下来,有一些经验想分享下:

1. 简历里写的一定要搞懂,都要深入到原理,而且要明白为什么这么设计(大环境不好,只能卷)

2. 项目一定要搞透,不限于整体架构、技术选型、待优化的点、系统各项指标(核心接口 P99、P90、RT、QPS、TPS、GC情况等)

网易、字节、有赞面经分享

网易-杭州 Java

一面 线上视频 45分钟

1. 自我介绍

2. 项目中如何将公众号推送延迟从600s降低到10s内

3. 项目中如何保证消息幂等

4. kafka 分区原理

5. HttpServletRequest 如何重复读body?

6. 说一下对 JMM 的理解

7. synchronized 如何实现可重入锁

8. 用过哪些 JUC 工具

9. ReentrantLock 实现原理

10. AQS 阻塞队列有长度限制吗

11. ReentrantLock 支持公平锁吗,怎么实现的

12. 公平锁和非公平锁的适用场景

13. 说一下对方法区的理解

14. 说一下 Java 对象的生命周期

15. 对象何时被回收,哪些对象可以作为 GC Roots 根节点

16. 项目中用过哪些设计模式,介绍下策略模式

17. 老家是哪里的

二面 线上视频 主管面 54分钟

1. 自我介绍

2. 介绍下项目的整体架构

3. 项目中的 push 推送是如何实现的,push 是如何推送到手机端的,原理是什么?

4. 项目中 push 推送做了哪些优化?

5. 项目中的本地缓存不一致是如何解决的?

6. 项目中都用 Redis 做了哪些事情,为什么要用 Redis,Redis 快在哪里?

7. 项目中的分布式 ID 如何实现的,时间回拨的问题如何解决的?

8. 项目中是如何解决缓存击穿和缓存穿透的问题?还有别的方案吗?

9. 项目中的验证码多维度频率控制和防刷策略是怎么做的?

10. 项目中如何将公众号推送延迟从600s降低到10s内,介绍下整个排查和解决流程?

11. 项目中 kafka 重复消息的问题是如何解决的?

12. 项目中哪里用到了线程池,说下线程池的原理,动态线程池如何实现的?

13. 项目中用的哪种配置中心,原理是什么,长轮询的方式会有什么问题,了解过其他配置中心吗,区别和优缺点?

14. 有看过 Spring 的源码吗?说下 Spring bean 的生命周期

15. 说下对 Java 中锁的理解

16. 说下 MySQL 事务的理解,InnoDB 的四大隔离级别分别是如何实现的,MVCC 的原理

17. 项目中有做过哪些 SQL 优化,优化过程?

18. 深度分页的问题如何解决?APP 端的浏览比较适合哪种?

19. 了解你现在投的岗位是做哪个产品吗?说说你对它的理解

20. 有关注哪些前沿技术?用过 ChatGPT 吗,用它做过哪些事情?

21. 反问

三面 现场 总监面 40分钟

1. 自我介绍

2. 介绍下公司主营业务,你的项目服务于哪些业务,项目的整体架构

2. 你觉得做这个项目对于个人和公司来说有哪些收益?量化说下?

3. 项目的迭代过程,需求来源于哪里?

4. 项目中如何将公众号推送延迟从600s降低到10s内,介绍下整个排查和解决流程?

5. 做项目中遇到过哪些困难?

6. 如果要对消息触达做疲劳控制,如何实现,你觉得做在哪里比较合适?

7. 对于后端技术有什么前瞻性的看法?

8. 有了解什么新技术吗?

9. 为什么要离职,具体有什么契机触发了离职的念头?

10. 最近还在面哪些公司?

11. 离职工作需要交接多久?

13. 反问

四面 电话 HR 38分钟

1. 自我介绍

扣项目的业务细节、个人规划、期望薪资...

字节跳动-杭州 Java

一面 线上视频 57分钟

1. 自我介绍

2. 介绍下项目的主要功能、上下游系统,整体架构

3. 项目中如何解决重复消息和保证消息不丢?

4. 项目中排查内存泄漏的具体过程?

5. 看过 HashMap 的源码吗,说下 HashMap 的原理,扩容原理,jdk 1.8 对 HashMap 做了哪些优化?

6. HashMap 头插法会有什么问题,描述一下出现问题的场景?

7. TCP 和 UDP 的区别、TCP 是如何保证可靠传输的?

8. 说下 TCP 三次握手和四次挥手的过程,以及为什么是三次和四次?

9. 说一下对 CAP、BASE 理论的理解

10. JVM 堆区域是如何划分的,你们线上新生代和老年代的占比设置的多少,为什么要这么设置?

11. 了解哪些判断对象存活的算法,原理说下

12. 新生代分为哪些区域?为什么占比是 8:1:1 ?

13. 说下对 RPC 的理解,dubbo 是如何实现优雅上下线的?

14. 大学学了哪些课程

15. 了解 MySQL 的哪些存储引擎,InnoDB 和 MyISAM 有什么区别

16. InnoDB 默认是什么隔离级别,你们线上用的哪个,为什么?

17. InnoDB 是如何解决不可重复读的问题?InnoDB 的 RR 隔离级别可以解决幻读吗,如何解决的?

18. 算法:岛屿数量

19. 平时有系统刷过题吗,刷过多少?

20. 反问

二面 线上视频 主管面 62分钟

1. 自我介绍

2. 介绍下项目的主要功能、上下游系统,整体架构

3. 项目为什么用kafka而不是其他的?kafka和rocketmq有什么区别,适用场景

4. 项目中如何解决kafka的重复消息?

5. 项目中如何将公众号推送延迟从600s降低到10s内?

6. 项目中说QPS有3W,如何防止一种类型的消息量较大从而影响其他消息?

7. 项目中还遇到过哪些难点,介绍下

8. 介绍下 Java 的异常体系,为什么 Java 要区分检查异常和非检查异常?

9. 如何排查 Java 进程 CPU 飙高,CPU 都有哪些指标,分别介绍下对应指标升高出现的原因

10. 了解哪些设计模式,在项目中用到哪些,具体说说?

11. 看过哪些中间件源码?

12. MySQL 了解吗,说一下主从同步的过程,这种主从模式会造成主从不一致吗?

13. MySQL 的 InnoDB 引擎了解吗,用自增值和非自增作值作主键有什么区别,性能上?

14. 假设现在要维护用户的姓名和身份证号,从三高系统的角度你会如何设计存储?

15. 白板 SQL 题

16. 算法:验证对称二叉树

17. 反问

三面 线上视频 总监面 56分钟

1. 自我介绍

2. 介绍下项目的主要功能、上下游系统,整体架构

3. 项目中如何保证消息的可靠性

4. 项目中如何将公众号推送延迟从600s降低到10s内?

5. 如果让你设计一个朋友圈的功能,你会如何设计,好友之间才能看到评论的功能如何实现

6. select * from t where a > 10;有a索引,a_b联合索引,会走哪个索引,原因?

7. 聚集索引和非聚集索引的区别,查询的底层逻辑有什么区别,有什么优化的方案?

8. 算法:下一个排列

9. 为什么要考虑离职

10. 现在手上都有哪些offer

11. 反问

四面 线上视频 交叉面 49分钟

1. 对前面的三轮面试有什么感受?

2. 我们这边都是用代码说话,在你工作两年的这个经验上,算法应该是你最擅长的,那我们来道简单的算法吧:实现一个函数,随机取N个M以内的数。实现完说下思路

3. 看你大学在陕西,为什么后面要到杭州工作?

4. 为什么要离职?

5. 说说你对于技术的理解?

6. 项目有多少人共同开发?

7. 项目有哪些业务指标来衡量?说下决定这些业务指标的因素?

8. 项目中通过哪些角度来提高触达率?

9. 项目中的接口鉴权是如何做的?

10. 项目中为什么选择用kafka,要解决什么问题?

11. 在哪些场景下会出现重复消息,以及你在项目中是如何解决的

12. 项目中如何将公众号推送延迟从600s降低到10s内?

13. 看到你项目中用到了 Redis、MySQL、TiDB、Hive、InfluxDB、分库分表等技术进行存储,说下对应的使用场景以及技术选型的原因

14. 了解过 DDD 吗,说说你对它的理解

15. 反问

五面 HR面 电话 43分钟

1. 前几轮面试下来有什么感受,对哪个面试官印象最深刻

2. 扣项目的业务细节、个人规划、期望薪资......

有赞-杭州 Java

一面 线上视频 55分钟

1. 自我介绍

2. 介绍下项目的主要功能、上下游系统,整体架构

3. 系统是如何扛住 3W QPS 的?

4. 下游渠道失败了怎么办?说下项目中的重试策略

5. 项目中有遇到过消息堆积的问题吗?如何解决的?

6. 项目中如何将公众号推送延迟从600s降低到10s内

7. 项目中哪里用到线程池?线程池的运行原理、如何实现线程复用,核心参数是如何设置的(核心线程数、拒绝策略、阻塞队列),为什么要这么设置?

8. Thread 类为什么要有 run 方法和 start 方法,两个方法有什么区别,为什么要这么设计?线程池里调用的哪个方法执行任务?

9. 项目中都用 Redis 干什么了,了解哪些数据结构?说下 hash 结构的底层实现

10. Redis 的全局 hash 表是如何进行扩容的?扩容的方式和 jdk 的HashMap有什么区别?会进行缩容吗?

11. Redis 的内存淘汰策略有哪些,底层分别是如何实现的,你们线上用的哪个策略?

12. 项目中有接入链路追踪吗?是如何实现的,多线程如何解决 traceId 丢失的问题?

13. 说下 SpringBoot 的启动流程

14. 说下 SpringBoot 的优雅停机

15. 项目中有用过 Spring 的扩展方法吗?都做了哪些事情?

16. Spring 的 IOC 为什么只有一个,多个可以吗?一个容器和多个容器各有什么优缺点?

17. 反问

二面 现场主管面 62分钟

1. 自我介绍

2. 现场白板画一下项目的整体结构图,包括介绍下技术选型及选型的原因

3. 项目中有多个发送类型,在这块有做什么抽象设计吗?

4. 如果有激增流量,一些及时性要求比较高的消息怎么保证及时触达,你会如何设计?

5. 假设运营的同学在触发了消息之后发现内容配错想及时止损,你会如何实现这个功能?

6. 项目中在提升触达率这块做了哪些事情?触达率的监控怎么做的?

7. 项目有做限流熔断降级吗?如果现在让你实现,你会怎么做?

8. Dubbo 的线程模型有了解过吗?

9. 项目中用到了SPI的思想,说下你对 SPI 的理解,jdk 中的 SPI 源码有看过吗,SPI 的类加载是怎么实现的?

10. 为什么要离职

11. 对下家公司的期望

12. 未来两到三年的职业规划

13. 现场白板写代码:二叉树的后序遍历

14. 反问

三面 现场总监面 32分钟

1. 自我介绍

2. 时间久有点记不清了........

四面 现场HR面 28分钟

扣项目的业务细节、个人规划、期望薪资...

社招主要问的项目、架构设计、场景设计、解决方案,大部分问题都能在阿东之前的技术文章里找到答案,如果有其他问题可以私信阿东,阿东有空会尽力解答

欢迎关注阿东的个人技术公众号:阿东编程之路

#后端##Java##字节##网易##面经#
 类似资料: