「Java」六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难( 二 )


问我觉得做得最深入的项目是什么
当然是数据同步(狗头)
聊数据同步项目(这个很符合我的预期 , 哈哈哈哈)
问 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 没有关系啊?
面试官:我们觉得你做过的东西挺多的 , 各个方向都想让你尝试一下 (我的内心:…)
我:那这轮是最后一轮技术面吗?
面试官:不一定(我的内心:…)


推荐阅读