去哪儿网 + 小赢科技 面经
10.12 上午去哪儿,下午小赢科技,都拿了offer
去哪儿
一面:
自我介绍
你知道jvm虚拟机吗?说一说内存划分以及每个区域的作用。
你知道jvm怎样进行垃圾回收吗?把你知道的都说一下。 serail+cms,parnew+cms,g1,分别的算法。
新生代到老年代的条件?parnew是如何操作的?
g1分代吗?不分代。你确定?不知道。
说一下spring的aop。***模式,默认jdk动态***,没有接口会转为cglib。
说一下cglib怎样实现的。
说说你知道的排序算法。
写一下堆排序。
看你简历用过mysql,讲讲innodb 和 myisam。
说一下mysql的索引。hash索引,b+树。区别?
你画一下b+树
b+树b树有什么区别?
为什么要使用b+树而不是二叉树?
innodb支持事物,你知道是通过什么实现的吗?mvcc。说一下。
mysql,innodb,查询会锁表吗?
知道哪些数据库的优化,都说一下。
来写一道题,找出一个数组内超过%50的字符,最快用什么?hash。如果我不申请额外空间呢?排序,二分。
你去xxx等一下。我看你好紧张,要不你出去转转?我们这面试官都是很好的。
二面
特别热情的面试官,走进去先叫我名字,我说那我做个自我介绍吧,他说不用,都知道。一直在笑,我也不紧张了。
记得笔试的题吗?那道求平方根的,你来实现一下。
再来一道题,我这有两个相同长度的链表,没个节点都是string,你能想到最快的方式判断这两个链表是否等价,等价就是说string都有,但是顺序可以不一致。撕了好久,面试官都不满意,但是态度很好。
我看你的简历你有不少web后端的开发经验,现在一个单机部署的tomcat(因为我问了服务器是分布式还是单机),怎样记录每个url的被访问次数?
一开始没懂,后来大概懂了是问存到什么地方。数据库?可以,还有呢?缓存?也行,还有呢?io写到文件里面?也可以,还有吗?.....想了一两分钟,ServletContext?嗯对,介绍一下这个对象,然后说一下你要怎么实现。
现在我们要设计一个缓存,一方面要提供用户访问的接口,一方面这个缓存要限制大小,你来画一下?lru?我画了个队列,他说时间复杂度太高,我说加个数组,先hash映射到数组是,再通过指针指到队列节点上。
然后他说好吧,你是想继续做java开发对吧?嗯,那你去xxx等一下。
hr面
为什么想去北京,有女朋友吗,父母怎么看,期望薪资是多少。
小赢科技
去哪完之后吃完饭还有一个小时,地方还有点远,打的过去又早了,面试官还没到。
一面:
面试官特别好,第一次面试官不是在电脑背后的,他把凳子搬过来挨着我坐,拿一张白纸,问的问题他都会把结构画好,然后让我讲?
java集合有哪些接口,哪些实现类,具体介绍一下每个你知道的实现类。都是我说他画,第一次碰到。
java多线程使用有哪些方式?thread,runnable,callable,线程池。
你说到callable,能给我介绍一下Future接口吗?
你说线程池,能将一下通常我们配置一个线程池有哪些关键参数吗?
能说一下线程池的饱和策略吗?
你有过web开发的经历,那你给我讲一下forword和redirect的区别?
我看你讲http报文的时候好像挺熟悉的,你能给我画一下http报文吗?
嗯,那你讲讲你知道的首部?说了几个,他说那我写,你说吧
refer?user-agent......
mysql的索引?hash和b+
为什么要采用b+而不是红黑树?b+查询性能高于红黑树,因为要考虑硬盘的io次数。这里给自己挖坑了.
你说要考虑io次数,那我们假设io的时间都不计,你确定b+查询性能高于红黑树?或者说为什么treemap要使用红黑树而不用b+?我认为不考虑io的话红黑树更高,意识到翻车啦。
你证明一下为什么红黑树更高?
你知道数据库有哪些优化呢?
结合数据库讲一下事务的隔离级别,包括事务相关的算法,你知道的都说一下。
好的,你稍等一下。
总体来说问的很清晰,所以觉得比较简单,也不紧张。
二面:
面试官各种结合开发聊人生。
你的这些项目哪个最难,哪个最满意,哪个让你觉得最有收货?
开发遇到过最大的难题是什么?遇到过最久的bug是什么?
写博客吗?平时怎样学习?
都是这种问题,细节到技术上就让讲了一下分布式。
但是聊了很久,可能聊了四十分钟,他讲的比我多。
hr:
为什么想去北京,有女朋友吗,父母怎么看,期望薪资是多少,有什么爱好。
然后介绍小赢科技,很想要优秀的年轻人加入,我们团队也很年轻,互联网金融发展也很不错,leader都是bat过来的。
走的时候送了我一个玩偶,走到酒店门口之前安排面试的姐姐又出来送了我一个,说给女朋友一个。很有人情味的公司。