面试经验分享(阿里巴巴、腾讯、网易游戏、美团、360)

春招实习已经找了很久了,在牛客网上看了不少面试经验,是时候分享一下我的面试经验了,希望能帮助到还在努力的朋友们。

阿里巴巴

我的阿里巴巴投的岗位是基础平台研发工程师。

一面(3.8)

1.你在之前公司实习的内容是什么?
2.讲一下Kubernetes的基本组件有什么?
3.进程之间的通信方式有哪些?
4.说一下完全公平调度算法?
5.说一下你为什么要做公众号编辑?(一个技术公众号,用来分享博客)
6.说一下你认为的Go的优缺点?
7.你在实习项目中遇到过什么问题,是如何解决的?
8.讲讲你写的Python的项目?(自己写的一个小练习)
这一轮面试之后面试官主动加了我的微信,还说了一些鼓励我的话。内心比较激动。

二面(3.20)

1.Go的内存模型是什么?
2.如何解决Go的内存泄漏的问题?
3.如何解决C的内存泄漏的问题?如何排查哪里泄漏?
4.如果一个节点的负载比较高,如何进行排查?
5.Kubernetes集群的高可用是怎么做的?
6.在client访问的时候,如何知道三个Master中哪个是主节点?
7.三个Master的主节点是如何进行***的?
8.线程与协程有什么区别?协程的劣势是什么?
9.协程为什么安全性不如线程好?
10.VFS是什么?有什么作用?
11.有两个已经排好序的数组,需要组合一下,该怎么组合时间复杂度最低?
12.有一个已经排好序的数组,拿一个数字,来在该数组中寻找该数字,该怎么寻找?
13.浏览器中输入一个网站域名,到看到这个界面,中间发生了什么?
14.两个节点的Pod是如何进行通信的?
15.同一个Pod的多个容器可以在不同节点上吗?
这一轮的面试问的东西比较多,有好多答的不完整。

三面(4.2)

1.你感兴趣的方向是什么?
2.你对Kubernetes有哪些了解?
3.说一下调度器的原理?
4.你的学习路线是什么?
5.除了实习?你在研究生期间还做过什么样的项目?
6.除了云计算,你还对别的领域有什么了解?
7.你什么时候能开始实习?
8.说下cpu.share和cpu.set?
9.你的研究方向是什么?
10.说下完全公平调度算法?
11.你认为为什么Kubernetes可以成为云平台的老大,他的优势是什么?

四面(4.8)

这一轮面试问的什么一点都记不起来了。(感觉好像失忆了)

五面(4.10)

1.Ext4日志文件系统的几种日志方式。
2.内存页表如果从虚拟地址转换到物理地址。
3.C的关键字volatile含义是什么?
这轮面试是杭州的内核开发团队打来的,问的全部都是内核底层的知识,我也不清楚为什么会这样,我投的岗位和他问的东西基本上没有直接的关联。当然,问题不只这三个,只不过好多都记不清了。这轮面试结束了我的状态就变成已回绝了。
结果:五面被拒。

腾讯

提前批(3.22)

因为我腾讯是内推的,所以先来了提前批的电话,不过就面了一轮然后就没然后了。
1.进程之间通信的方式,你用过哪些进程之间的通信方式?
2.操作系统的基本调度单位是什么,资源分配的基本单位是什么?
3.linux增加用户的命令?
4.文件有什么权限,如何改变用户的权限?
5.shell会多少?
6.磁盘还有剩余空间,为什么文件无法存储进去?
7.vim的一些基本操作

一面(4.16)

腾讯的正式春招开始了。我是在西安进行现场面试的。
1.自我介绍
2.讲一下你实习做的事情。
3.你做HPA项目时所遇到的难题以及如何解决的。
4.说一下Kubernetes有哪些组件?
5.说一下K8S调度器源码是如何实现的?
6.你的端口探活是怎么做的?
7.你认为你的优点和缺点是什么?
8.你的兴趣爱好有什么?
9.你有什么问题问我的?

二面(4.17)

二面是总监面,没有问任何技术细节,聊的都是项目的事情。

HR(4.18)

1.谈谈你对互联网的认识?
2.你投了几家公司,为什么投这些公司?
3.介绍下你参与过的项目 ?
4.过去遇到过什么大的挫折,如何解决的?
5.身体是否健康?
6.你可以实习多久?
腾讯的现场面问的技术细节并不多,基本上都是聊的项目、学习方法以及自己职业规划。
结果:腾讯的offer已经拿到了。

网易游戏(预研计划)

一面(3.29)

这次面试涉及面比较广。不仅问了Kubernetes的相关知识,还问了Docker、网络、操作系统、语言、算法的知识。自己感觉Kubernetes相关的问题回答的还行,但是其它的基础东西答的不太理想。
1.说一下你对Kubernetes的了解?
2.调度器的工作原理是什么?
3.用Docker如何制作镜像?
4.你在实习的项目中遇到过什么问题?是如何解决的?
5.说一下TCP与UDP的区别?
6.三次握手与四次挥手?
7.进程与线程之间的关系?
8.线程切换时切换了什么?
9.你会哪些语言?讲一下C的alloc与free怎么用?
10.在什么情况下TCP会断开连接?
结果:没后来了。应该是不行了。

美团

一面(4.4)

美团的岗位投的不对口,所以面试的时候基本上都是我一直在说我会什么,然后面试官跟我讲他们在做的事情,问我对那方面有没有兴趣。我答说不是很感兴趣。于是就没然后了。
结果:没后来了。应该是不行了。

360

一面(4.25)

360我投的是运维开发工程师。我和他聊了很久我会的东西之后,面试官说觉得我的容器方面的基础不错。但是他们这个部门不是做容器的。我说请他把我推到做容器的部门。于是一面就愉快的结束了。

二面、三面、HR面(4.26)

这个二面其实算是我对口部门的一面。因为这个部门是做容器方面的工作的,于是两面的面试官没有问我基础相关的东西,聊的都是容器相关的知识,还有我之前在实习单位实习相关的工作。于是这里也就不一一列举出来了,因为对大家的借鉴意义不大。
HR面的问题和腾讯HR面的问题基本大同小异,主要是聊生活,问我是哪里人,为什么要投北京的实习什么的。
结果:让等通知。个人觉得应该会有offer。

我面的公司并不是很多,主要是因为我之前一直做的是容器云相关的工作,比较熟悉的也是这方面,所以比较希望接下来还能够在这方面进一步深入下去。而大多数公司要的都是Java开发什么的,像我这样的岗位并不多,所以也就投了几家大公司。目前拿了腾讯的offer,360的问题应该也不大。个人觉得,还是要在平时多多夯实基础,同时也一定要有一个自己拿的出手的,与别人不同的东西,这样才容易成为亮点与面试时的谈资。还有就是,要坚持自己想做的东西,如果面试时发现差的很多,也不用去迎合面试官了,因为实习做自己不感兴趣的东西估计也学不了多少,而且还挺痛苦,没必要。

希望大家都能拿到心仪的offer。一起加油。

#春招##实习##面经#
全部评论
同在找容器云相关工作,老哥很强
点赞 回复 分享
发布于 2018-09-12 21:25
老哥,有没有什么学习go的建议,比如说学习路线,主流库,常见面试问题等等的,求赐教
点赞 回复 分享
发布于 2018-04-29 14:45

相关推荐

1)手撕:给定字符串,求不含重复字符的最长子串长度,并打印这个子串//哈希Set配合双指针private static String findLongestSubstring(String s) {        int n = s.length();        int left = 0;        int maxLength = 0;        String longestSubstring = "";        Set<Character> charSet = new HashSet<>();        for(int right = 0 ; right < n ; right ++){            while(charSet.contains(s.charAt(right))){                charSet.remove(s.charAt(left));                left++;            }            charSet.add(s.charAt(right));            if(maxLength < right - left + 1){                maxLength = right - left + 1;                longestSubstring = s.substring(left , right + 1);            }        }        return longestSubstring;    }2)如何设计一个秒杀系统?从以下角度考虑:1.高性能架构;采用分布式架构,消息队列来削峰填谷,服务的降级和熔断 2.高并发的处理能力:商品库存扣减的多线程安全问题,采用redisson分布式锁,缓存预热3.用户体验升级:websocket实现秒杀倒计时同步,消息队列实现秒杀结果实时反馈,针对ip地址,设备指纹和访问频率的限制实现防作弊系统4.数据一致性保障;数据库分库分表,本地消息表5.监控报警:监控系统,报警系统,日志系统,异常日志收集,分布式追踪系统6.安全防护、成本控制3)String StringBuffer StringBuilder区别String是不可变类,线程安全,每次修改字符串都会创建新的字符串,效率比较低StringBuffer是可变类,直接在原字符串上修改,使用了Synchronized实现同步,效率也比较低,适合多线程场景StringBuilder是可变类,线程不安全,效率比较高,适合单线程场景4)数据库字段char和varchar区别char:定长字符串,存储长度为1~255个字符,存储空间固定为255字节,不足用空格补,适合固定长度的字段,便于数据库读取和优化varchar:可变字符串,存储长度为1~65535个字符,存储空间为实际长度+长度字节5)索引失效的情况索引失效是指数据库在查询过程中无法有效利用已建立的索引,导致查询性能下降,甚至退化为全表扫描的情况。查询条件中使用了函数或表达式对索引列进行操作;使用了OR条件且未对所有分支列建立索查询条件中使用了NOT、<>、!=等否定操作符;对索引列进行了模糊查询(如LIKE '%abc%'),且通配符位于开头;查询条件中列的顺序与复合索引的列顺序不匹配;或者查询时数据类型不匹配导致索引无法使用。6)数据库的事务隔离级别读未提交:允许读取尚未提交的数据,可能导致脏读、幻读、不可重复读读已提交:允许读取已提交的数据,不能保证数据一致,可能导致幻读和不可重复读可重复读:允许读取已提交数据,可能导致幻读串行化:保证数据一致性,但是并发度和性能低7)Redis的常用数据类型,分别存储哪些东西?String:存储字符串,比如用户名、密码和验证码等哈希:哈希表,可以存储用户信息,商品信息等List:存储有序的元素,比如消息队列和日志记录Set:集合,可以做去重排序或求交集等Zset:带得分排序的集合,可以做用户或者流量等的排行榜8)Redis的锁机制基于SETNX命令,将锁名称作为键,客户端唯一标识(UUID)作为键值,使用完锁后DEL释放锁    因不可冲入可能存在死锁和不及时释放锁的情况,可以释放锁时检查锁值是否为自己的UUID以及添加过期时间基于Lua脚本,使用原子SET命令和Lua脚本的事务性,但仍存在锁续期困难和业务超时锁释放风险基于Redisson的分布式锁,支持可冲入锁和自动续期,提供公平锁、联锁和红锁9)HTTP1.0 2.0 3.0 区别HTTP1.0:默认为短连接,每次请求都需要建立TCP连接,并通过Connection: keep-alive头来实现持久连接,不支持管道    化,主要使用If-Modified-Since/Expires来做为缓存判断的标准;HTTP2.0:采用二进制格式而非文本格式,解析更加高效,支持多路复用允许单个TCP交错发送多个请求和响应,引入HPA    CK压缩算法,对请求和响应的头部信息进行压缩,消除冗余,允许客户端为请求设置优先级HTTP3.0: 最新的HTTP协议,基于QUIC协议,QUIC使用udp传输数据,不存在队头阻塞问题,首次连接后具备0RTT优        势,减少延迟,允许网络切换时,将连接迁移到新的IP地址,默认采用TLS加密,保证数据传输的安全性10) TCP的三次握手和四次挥手,为什么需要?三次握手:客户端向服务器发送SYN表示请求同步,服务器向客户端发送SYN+ACK表示确认收到同步请求,可以确保客户    端的发送能力正常,客户端向服务器发送ACK表示确认,可以确认服务器的发送和接收能力以及客户端的接收能力正常,   连接建立,通过三次握手能够保证通信双方的接收发送能力正常四次挥手:客户端发送FIN+x序列号表示请求关闭连接,服务器发送ACK+x+1表示确认收到,客户端向服务器的通道关        闭,服务器发送FIN+y序列号表示请求关闭连接,客户端发送ACK+y+1表示收到,等待2MSL没有收到回复后关闭TCP连接,因为TCP是全双工的,双向链路分别需要发送和接收两次,所以是需要四次挥手。11) 从输入网址,到最后访问页面的全过程首先输入URL,进行URL解析,准备发送http请求在请求之前,先本地查看浏览器缓存,如果缓存有该资源,直接返回,否则继续准备请求发送请求之前,进行DNS域名解析,按照本地缓存,本地HOST,路由器缓存,DNS服务器,DNS根服务器顺序,直到查        询到URL对应的IP地址三次握手建立TCP连接构建请求并发送,包括请求行,请求头,请求体,并把和该域名相关的cookie放入请求头,构建HTTP请求,如果是https        还要进行加密服务器处理请求,生成对应的响应并返回相应资源四次握手关闭TCP连接浏览器接收到响应后进行解析处理,如果是字节流可能是下载管理器进行下载,如果是html页面就是进行渲染生成页面。
查看11道真题和解析
点赞 评论 收藏
分享
04-09 17:45
已编辑
电子科技大学 C++
点赞 评论 收藏
分享
评论
点赞
48
分享

创作者周榜

更多
牛客网
牛客企业服务