个人背景

2020届硕士,毕业于武汉某985,软件工程专业,自己觉得自己是比较菜的,因为春招时没有投什么公司,所以现在又悔又恨,所以准备秋招时好好发挥一下自己,提前一个多月就开始做好准备,大概8月上旬就开始投简历了,下旬才陆续接到面试邀约,截止中秋假期后,总共就面试了3家公司,当然这3家公司的offer也均拿到手,分别是京东、华为和去哪儿,特来分享一下自己的面经,希望能够帮助到各位。

京东面经

一面(大概在40分钟左右):

1.自我介绍

2.项目介绍

(我对于项目说的比较细,项目简介、用到的技术、总体框架、个人贡献,着重讲了项目中遇到的问题,我这里说的是并***形下的性能和数据精确性问题)

3.项目中用到了Redis,介绍一下Redis数据类型

4.你们怎么保证Redis缓存和数据库的数据一致性?缓存雪崩?击穿?穿透?

5.算法的时间复杂度和空间复杂度的含义,分析一下快排的?

6.MySQL外键删除策略?

7.如何做的MySQL优化?

8.MySQL索引结构?介绍一下B树和B+树?MyISAM和InnoDB索引的区别?

9.什么是事务?事务隔离级别和MVCC?

(我对于这里比较了解,在征得面试官同意后,展开说了InnoDB底层对于各个隔离级别以及MVCC的实现,包括各种锁、ReadView机制和版本链机制)

10.最短路径算法

11.HashMap和ConcurrentHashMap

12.Thread的join方法了解吗?(我说相当于if(isAlive())wait(0))

那为啥不直接用wait(0)?(不知道)

13.final关键字,final修饰的方法不能被重写,能被重载吗

(在这里额外提了Java内存模型对于final的底层实现)

14.JVM了解吗,说说所知道的

(我讲了内存区域、垃圾回收、类加载,然后,面试官说可以了)

有什么要问我的?

二面:

1.自我介绍

2.项目介绍

3.Redis线程安全吗,事务支持一致性吗

4.数组与链表的区别?

5.项目中数据安全性如何保证的?

(我答对于请求使用 session+token+时间戳 校验,对于传输的数据进行非对称加密,使用HTTPS,面试官不是很满意)

6.MySQL分库分表的方案?

(我介绍了我们使用的三种方式,hash法、range法以及当前正在使用的hash+range法)

7.Zookeeper了解吗?(不了解)

8.dubbo了解吗?(不了解)

9.意向城市?意向部门?

10.有什么要问我的? ** 三面(HR面):**

1.自我介绍

2.自身的优点和最大的缺点

3.周围人的评价

4.为什么选择北京

5.职业规划

6.有什么要问的

华为面经(武汉、长沙地区)

** 一面:**

1.自我介绍

2.项目介绍

3.项目中遇到的最大的问题?

4.画一下项目的后端架构图

5.看你数据库用的不错,数据库三范式+BCNF范式?

6.项目中如何处理终端之间的信息交互?

(Web网页之间使用的WebSocket, 与手机的交互使用的自己用Netty实现的IM框架)

7.平时怎么学习技术?

8.有没有做Android的兴趣?(????目前没有)

9.为什么想去北京?武汉行吗?

10.有没有要问我的?

二面:

1.自我介绍

2.项目介绍

3.学习成绩相关情况

4.保研还是考研?(保研)

5.奖学金情况

6.最想去的三个公司

7.意向城市,意向部门

8.有没有其他问题?

去哪儿面经(机票部门)

一面:

1.自我介绍

2.项目介绍

3.项目中遇到的难题

4.项目中用到了线程池,用的什么线程池,怎么配置的参数?

5.项目中的并发临界资源是怎么处理的?

6.AtomicInteger怎么实现的?

7.CAS三大问题及解决方式

8.事务隔离级别,MySQL默认级别,(可重复读),为啥使用可重复读?(可重复读+MVCC达到了序列化要求)

9.一个类里面有两个方法A和B,方法A有@Transaction,B没有,但B调用了A,外界调用B会不会触发事务?

10.OS进程间通信的方式?Java使用的哪种方式?

11.介绍一下Java中的锁?可重入锁如何实现的可重入?

12.浏览器从输入URL到返回结果中间经历了什么?

13.分析一下快速排序的时间复杂度和算法复杂度?

14.你有什么要问的?

二面:

1.自我介绍

2.研究方向

3.学习的课程

4.说一下数据库范式

5.进程与线程的区别

6.算法题:计算一个有环链表的节点数

这个二面让我一脸懵逼,项目都没让介绍......

三面(HR面):

1.自我介绍

2.项目介绍

3.学习方法、学习成绩

4.现有的offer情况

5.兴趣爱好

6.意向城市及原因

7.遇到的最大的问题及解决方式

8.有什么要问的

直接介绍了这个部门和业务,然后说了待遇和要求,让我两天内回复(直接offer了?)

总结

主要通过这3轮面试来锻炼一下自己,提升了一下自信心,这3家目前都不打算考虑了,已经着手准备开始投BAT,希望能够有一个好的结果。