开始之前
楼主在浙江一所普通双非二本大学读大三,一直在牛客取经,现在收到了阿里HR的口头Offer,表示一两天左右应该可以收到正式Offer,所以在这里分享下我的面试过程,以此答谢各位大佬在牛客无偿提供的资料。
一面 3月19日 37min
3月18日下午3点多突然打来电话询问是否有空,楼主表示正在上课,不方便,于是约了次日14点。
3月19日14点02分收到面试官的电话。
- 介绍下自己
- Thread的状态
- 集合框架是否了解
- 说一下LinkedList和ArrayList,说下底层
- 是否线程安全,如何才能做到线程安全
- wait和sleep的区别
- HashMap、HashTable介绍下
- 说说HashMap的底层
- 是否了解JVM,说说JVM的垃圾回收算法
这里还问了一个,OOM如何排查并解决 - 一个新对象new之后会被分配到新生代的哪里,为什么
- 项目开发中是否遇到过难题,如何解决
- MySQL了解过吗?说说聚集索引
- 数据库的第三范式解释下
- 事物的特性
- 一致性和原子性解释下
- 事物的隔离机制,举几个例子
- 解释下可重复读
- 死锁的四个条件说下,或者举个例子
- 网络了解过吗?TCP为什么可靠
- TCP三次握手说下
- TCP四次挥手说下,发送的各个标志位也说下
因为楼主的笔试成绩比较差,所以面试官在16点为我排了一场伯乐上的笔试。
笔试内容可以分为两层,一层为实现LRU,另一层为实现get、put时间复杂度为O(1)的LRU。
楼主的八股还算过关,面试体验不错。
二面 3月30日 33min
本来以为楼主挂了,等了一周后,问了学长(@只搞Java,人送外号肚子哥)后得知面试被安排在周二(3月30日),于是楼主又开始紧张了。
3月29日18点55收到面试官的面试邀请,约了第二天10点面试。
面试官迟到了18分钟,说有点事耽误了,我表示理解,紧接着面试就开始了。
- 介绍下自己(成绩还可以,为什么不考研)
- volatile介绍下,答了可见性和有序性,让深入说下,说了内存屏障,问我还有呢。
- 项目介绍下
- Lock和synchronized,一般情况下如何选择,为啥
- 创建线程池说下
- 为啥不推荐用Executors创建
- 线程池任务提交流程说下
- Redis数据类型介绍下
- Redis为啥快
- IO多路复用
- 分布式锁如何实现
- MQ了解吗?不了解
- RPC框架了解吗?不了解
- 实现RPC框架,你设计下。我说的重点在序列化和反序列化,面试官反问,Call ID不重要吗?
- 做两个算法吧。100G文件1G内存,排序。
- 字符串最长非重复子字符串
逮着你了解点的东西一直问下去,问到你说我不会了、我想不起来了。楼主差点没了。
三面 3月30日 23min
当天下午14点46分突然打来电话。
- 介绍下自己
- 项目完成进度
- 项目登录模块
- 项目Gateway的用处
- 说说学校的生活
- 说说博客
- 说说开源框架的认识
- 平时刷题吗
- 说说印象最深刻的算法
- 再说一个
这一面重点就从技术转移到思想同时开始日常了,所以面下来比较轻松。
HR面 3月31日 15min
以为会等好久,想不到还挺快的。
- 介绍下自己
- 为啥不考研
- 平时做的项目介绍下
- 做的项目有啥不足,可以如何改进
然后就是聊天了,说技术面试还可以,HR就不多问了。我顺势询问结果啥时候能知道,我要把字节给推了吗。HR说字节推了吧,Offer应该走个流程一两天就能下来。
希望以上能对你有帮助。
全部评论
(15) 回帖