蚂蚁java六面,终获offer,面经+面试题(大数据必考+后端面试题+JVM+Java面经+Spring+Redis)

osc_p0v6j6lt 2020-11-08 10:35:50
java 面试 linux spring Mysql


前言

今天给大家分享一个小伙伴的蚂蚁金服六面经验,虽然在面试过程中被血虐,没想到最后还是拿到了offer

一面

  • 介绍一下自己
  • 问项目经历, 聊"数据同步"
  • 接着聊上了 K8S 的项目
  • 有没有什么钻研得比较深得技术?(我:kubernetes, golang, prometheus, java)
  • kubernetes 的架构是怎么样的? 这个问题很大,拆成 apiserver、controller、kubelet、scheduler 讲了一下
  • golang 与 java 的比较 这个问题又很大,当时主要对比了 vm、协程支持、面向对象和泛型的区别、以及自己对各自使用场景的一些理解
  • golang 的 gc 算法 知道是三色标记,不过细节说不上来
  • 从无限的字符流中, 随机选出 10 个字符 没见过也没想出来,查了一下是蓄水池采样算法,经典面试题,没刷题吃亏了
  • 怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度
  • 单节点提速:优选阶段随机取部分节点进行优选;水平扩展 scheduler 节点,pod 做一致性 hash 来决定由哪个scheduler 调度
  • 你有什么想问我的?

一面其实有点没放开,面试官对我的回答没有什么反馈和深入,所以我当时面完觉得自己其实已经挂了,后来收到二面电话着实吃惊了一下。

二面

  • 先聊了聊项目
  • 给 Prometheus 做了哪些改动?
  • 自研配置中心, 具体做了哪些内容?
  • 有用过 MySQL 的什么高级特性吗? 这里不太理解,我问什么算高级特性,面试官就切换到了下一个问题
  • 配置中心的核心数据表是怎么设计的?
  • 为什么在业务里用 Redis, Redis 有什么优点? 单线程:并发安全;高性能;原语与数据结构丰富;采用广泛,踩坑成本低
  • 对 Redis 里数据结构的实现熟悉吗? 说了一个 zset 跳表
  • 用过 Redis 的哪些数据结构, 分别用在什么场景?
  • Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用?
  • 自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优? 这个问住了,我只知道最大堆最小堆,开 G1,开 GC 日志以及 OOM dumper 这些基本的
  • 用 Jetty 的时候有没有配什么参数, 为什么这么配?
  • Jetty QTP 等待队列配置成无限的话, 你觉得好吗? 会有什么问题吗?
  • 用过 Linux Bash 里的哪些命令, 分别用它们干嘛?
  • 一道笔试题: 需要在给的链接中作答, 不能 google, 不能跳出, 不能用 IDE:
    题目是这样的: 启动两个线程, 一个输出 1,3,5,7…99, 另一个输出 2,4,6,8…100 最后 STDOUT 中按序输出 1,2,3,4,5…100 我: 我用 Go 实现吧 面试官: 不可以,用 Java 的 notify 机制实现 我:那我用 Java
    BlockingQueue 面试官:说不可以, 要求用 Java 的 wait + notify 机制来实现 我完全没写过 wait +
    notify,只能表示不会, 面试官说那行吧你可以用 go 写 最后用 go channel 实现了一版,
    不过给的网页上不能运行代码,也不知道写得对不对,然后面试结束。



这一轮面试官延续了一面的风格,问完一题就赶忙下一题了,似乎没有表现出对我的回答有兴趣或认可。因此这轮面完,我又觉得自己挂了…

三面

  • 依然先聊项目
  • 对监控警报的项目很感兴趣, 问了挺多细节, 最后问了一个问题: 现在要你实现一个语义不弱于 PromQL 的查询语言, 你能实现吗?
    这里虽然看过一些 Prometheus 的代码,但其实对 PromQL 的 lexer 和 parser
    部分没有细看,还好之前因为数据同步项目里想写声明式 Stream SQL 研究过一点 ANTLR,用 ANTLR 写语法 + AST遍历塞查询逻辑给糊弄过去了。

  • 问我觉得做得最深入的项目是什么 当然是数据同步
  • 聊数据同步项目
  • 问 Linux 掌握得怎么样?
  • 没有系统学习过,基本上是自己运维踩坑积累的
  • 问 Golang 掌握得怎么样?
    用了半年, 看过 effective go
  • 问算法掌握得怎么样? 到图为止都可以
  • 问最短路算法 只记得 dijkstra 了,描述了代码流程
  • k8s 掌握得怎么样? 不怎么样,没有自己写过 controller 和 scheduler,但是对概念都很熟悉,看过 xxx 这几部分的源码 k8s 的 exec 是怎么实现的? 这个问题正中下怀,之前写了 PingCAP 的小作业正好对这块特别熟悉

这轮聊得顺畅多了。同时发现蚂蚁的面试官似乎挺喜欢让你自己评价自己的:“你觉得自己 xxx 掌握得怎么样?”(只有五位面试官,样本不够大,不能作数哦)。

四面

  • 介绍一下自己
  • 觉得自己基础知识掌握怎么样
  • 平时一般会用到哪些数据结构?
  • 链表和数组相比, 有什么优劣?
  • 如何判断两个无环单链表有没有交叉点
  • 如何判断两个有环单链表有没有交叉点
  • 如何判断一个单链表有没有环, 并找出入环点
  • TCP 和 UDP 有什么区别?
  • 描述一下 TCP 四次挥手的过程中
  • TCP 有哪些状态
  • TCP 的 LISTEN 状态是什么
  • TCP 的 CLOSE_WAIT 状态是什么
  • 建立一个 socket 连接要经过哪些步骤
  • 常见的 HTTP 状态码有哪些
  • 301和302有什么区别
  • 504和500有什么区别
  • HTTPS 和 HTTP 有什么区别
  • 写一个算法题: 手写快排

这一轮全程问的基础知识,基础扎实的话就没问题了。

五面

  • 介绍一下自己
  • 在 k8s 上做过哪些二次开发?
  • 自己用 Helm 构建过 chart 吗?有哪些?
  • 有没有考虑过自己封装一个面向研发的 PaaS 平台?
  • 配置中心做了什么?
  • 为什么不用 zookeeper?
  • 配置中心如何保证一致性?
  • Spring 里用了单例 Bean, 怎么保证访问 Bean 字段时的并发安全?
  • 用并发安全的数据结构,比如 ConcurrentHashMap;或者加互斥锁
  • 假如我还想隔离两个线程的数据, 怎么办?
  • ThreadLocal,然后举了个例子
  • Golang 里的逃逸分析是什么?怎么避免内存逃逸?
  • 这个不知道,认怂了
  • 对比一下 Golang 和 Java 的 GC 答了一下 CMS、G1和三色标记,我对比的点是 JVM 有分代回收,Go 的 Runtime 没有,没能深入地讲
  • Golang 的 GC 触发时机是什么 阈值触发;主动触发;两分钟定时触发;
  • 有没有写过 k8s 的 Operator 或 Controller?(我:没有写过)
  • 谈一谈你对微服务架构的理解 大体思路"微服务本质是人员组织架构演进与关注点分离"
  • 谈一谈你对 Serveless 的理解 大体思路"Serveless 是继 docker 与容器编排之后的又一次应用开发与基础设施提供方之间的边界划分"
  • 你认为 Serveless 是未来吗? 为什么? 大体思路"是云服务的未来,把蛋糕从企业的IT、运维与中间件部门切走,形成规模效应,做得越多赚得越多;公司内的话 servless
    能够帮助加速前台业务迭代,但对中后台的收益还看不到,未来可能会有比 servless 更适合中后台的架构"
  • 面试官:最后你有什么要问我的? 我:为什么足足安排了五轮技术面,而且其中有两轮似乎和 k8s 没有关系啊? 面试官:我们觉得你做过的东西挺多的,各个方向都想让你尝试一下 (我的内心:…) 我:那这轮是最后一轮技术面吗? 面试官:不一定

后续还问了面试官一些业务相关的问题,就不赘述了

六面 HR面

  • 问经历
  • 为什么要考虑出来看看呢? “现在自己的技术成长有点碰到瓶颈,加上一直对您公司钦慕有加relaxed”"
  • 现在公司的主营业务是什么?(这块往技术上问了很多,感觉是想考察我解释复杂问题的能力)
  • 现在带人吗?report 层级是怎样的?
  • 对自己这几年的经历满意吗?
  • 觉得自己有什么缺点?
  • 碰到过什么很挫败的事情吗?
  • 未来的职业规划是怎样的?
  • 看机会的时候,主要考虑的是待遇、平台、人员还是什么其他因素?
  • 现在的待遇如何
  • 有什么想问我的

2020最新BAT大数据必考面试题集锦

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Java后端面试题及答案

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

JVM面试题及其答案

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Java面经

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Spring面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

SpringMVC面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

SpringBoot面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

SPringCloud面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Tomcat面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

并发编程面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

多线程面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

MySQL55问

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

乐观锁和悲观锁面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Redis面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Kafka面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Zookeeper面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Linux面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

MyBatis

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

Nginx面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

memcached面试题

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

MongoDB

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

面试题目录汇总

从小公司跳槽到阿里,靠着刷多套面试题,成功拿到蚂蚁金服P7Offer

 

总结

蚂蚁的面试感觉比较注重基础知识,开发常识,技术见解,没有偏门和猎奇的问题,基础知识扎实的同学可以投蚂蚁试试。

这几十套面试题小编已经为大家整理好了,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考,需要全部文档的,点赞+关注,加助理VX:mxx2020666,免费领取

版权声明
本文为[osc_p0v6j6lt]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4386695/blog/4707979

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云