用5个月时间啃透这份Java面试宝典,成功让我拿下蚂蚁金服Java岗offer

一位985毕业生分享了他在蚂蚁金服面试后端开发的经历,涵盖了一面到五面的详细问题,包括Kubernetes、Java、Golang、Redis、MySQL、JVM调优等多个技术领域的知识点。面试者通过项目经验展示了对技术的深入理解和应用,尤其强调了K8S在面试中的重要性。
摘要由CSDN通过智能技术生成

 

背景

 

 

985毕业工作刚好一年,之前是做测试后面转开发,做测试的时候就一直背开发的锅,害现在我也算是个人上人了。蚂蚁金服上市后的一周我投了Java岗后端开发,本来是想涨涨面试经验,没想到运气这么好直接拿了offer,下面我会分享我的面试经历和面试前后整理的资料,有需要的可以【见下图添加上小助手】即可获取到了(手速快的已经上车了)

 

一面:

1、介绍一下自己;

2、问项目经历, 聊"数据同步"

3、接着聊上了 K8S 的项目

4、有没有什么钻研得比较深的技术?

5、kubernetes 的架构是怎么样的?

6、golang 与 java 的比较

7、golang 的 gc 算法

8、怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度?

9、你有什么想问我的?

面试前后我整理了kubernetes(k8s)深入笔记,感觉K8s问的特别多

  • K8S实践篇

 

 

  • K8S实践篇

 

 

 

 

 

二面:

1、先聊了聊项目。

2、给 Prometheus 做了哪些改动?

3、自研配置中心, 具体做了哪些内容?

4、有用过 MySQL 的什么高级特性吗?

5、配置中心的核心数据表是怎么设计的?

6、为什么在业务里用 Redis, Redis 有什么优点?

7、对 Redis 里数据结构的实现熟悉吗?

8、用过 Redis 的哪些数据结构, 分别用在什么场景?

9、Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用?

10、自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优?

11、用 Jetty 的时候有没有配什么参数, 为什么这么配?

12、Jetty QTP 等待队列配置成无限的话, 你觉得好吗? 会有什么问题吗?

13、用过 Linux Bash 里的哪些命令, 分别用它们干嘛?

14、一道笔试题: 需要在给的链接中作答, 不能 google, 不能跳出, 不能用 IDE: 用 Java 的 wait + notify 机制实现;

题目如下:

启动两个线程, 一个输出 1,3,5,7…99, 另一个输出 2,4,6,8…100 最后 STDOUT 中按序输出 1,2,3,4,5…100

这里的话我主要整理了MySql,JVM调优笔记,Redis核心笔记

  • MySQL 常用对象

 

 

  • MySQL体系结构,存储引擎及SQL优化

 

 

  • MySQL缓存,参数调整及锁

 

 

  • MySQL 常用工具、主从复制及综合案例

 

 

JVM调优笔记

 

 

Redis核心笔记

 

 

 

三面:

1、依然先聊项目,对监控警报的项目很感兴趣, 问了挺多细节, 最后问了一个问题: 现在要你实现一个语义不弱于 PromQL 的查询语言, 你能实现吗?

2、你觉得做得最深入的项目是什么?

3、聊数据同步项目

4、Linux 掌握得怎么样?

5、Golang 掌握得怎么样?

6、问算法掌握得怎么样?

7、问最短路算法

8、k8s 掌握得怎么样?

9、k8s 的 exec 是怎么实现的?

 

四面:

1、介绍一下自己;

2、觉得自己基础知识掌握怎么样?

3、平时一般会用到哪些数据结构?

4、链表和数组相比, 有什么优劣?

5、如何判断两个无环单链表有没有交叉点?

6、如何判断两个有环单链表有没有交叉点?

7、如何判断一个单链表有没有环, 并找出入环点

8、TCP 和 UDP 有什么区别?

9、描述一下 TCP 四次挥手的过程中

10、TCP 有哪些状态?

11、TCP 的 LISTEN 状态是什么?

12、TCP 的 CLOSE_WAIT 状态是什么?

13、建立一个 socket 连接要经过哪些步骤?

14、常见的 HTTP 状态码有哪些?

15、301和302有什么区别?

16、504和500有什么区别?

17、HTTPS 和 HTTP 有什么区别?

18、手写快排

HTTP全解

 

 

 

 

 

 

 

五面:

1、介绍一下自己

2、在 k8s 上做过哪些二次开发?

3、自己用 Helm 构建过 chart 吗?有哪些?

4、有没有考虑过自己封装一个面向研发的 PaaS 平台?

5、配置中心做了什么?

6、为什么不用 zookeeper?

7、配置中心如何保证一致性?

8、Spring 利用了单例 Bean, 怎么保证访问 Bean 字段时的并发安全?

9、假如我还想隔离两个线程的数据, 怎么办?

10、Golang 里的逃逸分析是什么?怎么避免内存逃逸?

11、Golang 的 GC 触发时机是什么?

12、有没有写过 k8s 的 Operator 或 Controller?

13、谈一谈你对微服务架构的理解;

14、谈一谈你对 Serveless 的理解;

15、最后你有什么要问我的?

微服务架构笔记

  • SpringCloud 微服务架构1---注册与发现篇(Eureka,Ribbon)

 

 

  • SpringCloud 微服务架构2---Spring Cloud Netflix篇(Feign,Hystrix)

 

 

  • SpringCloud 微服务架构3---微服务网关篇

 

 

  • SpringCloud 微服务架构4---Spring Cloud Stream篇

 

 

 

总结

面试本质是一个自我优势展示的过程,不要把面试变成面试官问一句自己回答一句,主动抛出一些可能的点等面试官来问,比如我基本都被问到了DB和缓存之间怎么保证数据的一致性,其实都是我自己刻意往上引的,比如面试官说,你用过Redis吗,你可以说,用过,一般用来作为缓存配合MySQL提高性能,需要注意它们之间数据的一致性问题(不要太刻意,自己把握分寸),面试官大概率会接着问你是怎么保证的

有需要文章中提到的资料可以【见下图添加上小助手】即可获取到了(手速快的已经上车了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值