面试流程:
三轮技术面+一轮HR面。周二下午被通知去第一轮技术面,周二晚上就通知过了并且约了周三早上的第二轮技术面。中间隔了一天,周五上午进行的第三轮面试,三面结束后让等了十分钟,直接和HR约见。之后具体讨论入职事项,次周周三拿到正式Offer。
面试内容:
一轮技术面
(面试官是一个感觉没比我大多少的小伙,大约就是一个比较基层的技术人员):
- 简历上写第一位的项目的具体实现思路
- Http和Https的区别
- HashMap的具体实施原理,HashMap和Hashset的区别
- Java的垃圾回收机制
- JVM的原理及线上调优
二轮技术面
(面试官应该是一个中层,三十多岁,全程笑眯眯的)
- 在简历上挑了两个项目具体询问,包括整体架构,遇到的问题,使用的技术,你在项目中承担的任务,最后实现的成果,你觉得那些可以改进的。
- string,stringbulider,stringbuffer的区别
- Java的设计模式
- 在白纸上手写二分法排序算法,这道题我在lintcode上面做过原题
- 如果工作中途让你从一个语言转到另外一个语言(比如从java到python),你会接受么?
三轮技术面
(面试官还是一个三十多岁的男性,应该比二轮的地位再高点,很和蔼)
- 有哪些可以保持进程同步的方法
- 如何避免死锁
- 常见的数据结构有哪些