携程面经(offer get)
一面(电话面 16分钟):
- 介绍ConcurrentHashMap实现原理
- ConcurrentHashMap和LinkedHashMap差异和适用情形
- 如果让你自己实现一个orm框架会如何实现
- 说一说了解的锁(主要介绍可重入锁
ReentrantLock) - mysql数据库索引及底层实现(B+树)及使用索引的优缺点
- 说一说对jvm内存模型的了解(扯了一点GC)
- equals和hashcode的区别
- 说一说快速排序
其他。。有点不记得了
二面(现场 1小时):
- 各种排序算法的时间复杂度和空间复杂度
- 算法讲思路:两个有序数组合并并且找出第k小的数字(其实这个题关键在于有序,我当时中午没睡觉。。脑子有点糊,一想。。这不是堆排序嘛。。其实已经有序的数组找第k个直接遍历找index为k - 1的项即可。。)当然面试官还让用更快的方法,就是直接用二分查找的方法来找就可以了。
- 算法讲思路:二叉树的层序遍历(借助辅助队列完成,牛客网原题)
- 算法讲思路:Dijkstra(求最短路径)
- 介绍常用的GC策略以及年轻代中为什么要分Eden、Survivor区、年轻代为什么要使用复制-清除算法(因为大部分对象都是朝生夕死的)
- equals和hashcode的区别、hashcode的作用(二面真的是又问了一遍)
- 数据库索引,MyISAM、InnoDB的区别(一个B+树叶子节点存的地址,一个是直接存的数据)
- 进程与线程的区别,多线程有可能会造成的问题(占用内存,资源竞争产生死锁啊之类的)
- java基本类型与引用类型的区别
好像就没了。。有点不太记得了,今天hr打电话确认offer的时候还问了一下考不考研,保不保研之类的事情,然后就给发了offer邮件。
今年春招面试的第一家公司就是内推的携程,因为当时太紧张了,也没准备好,就挂了,后来转为了笔试流程,好好准备了一下,看了挺多面经的,成功的拿到了offer,携程,可以说是我最喜欢的公司之一了吧,感觉这次春招的目标终于达成了。
最后,愿大家都能拿到自己满意的offer
#携程##Java工程师#