前段时间投了网易的实习生,经历了两轮面试,故写此面经以做总结。
一面:
一面在电话中进行,以计算机基础知识为主,可以说较为容易。
内容包括快速排序,网络中的三次握手四次挥手细节,数据库中的内外连接,spring特性,spring mvc的流程和原理细节等。这些网上一查即知,故不予详述。
其中大概有两点我有点遗忘,其一是vector和arraylist的区别,其二是hashtable为什么是线程安全的。
面试之后经查相关资料,再仔细斟酌了这两个问题。以我的了解,vector和arraylist均通过数组实现,他们的不同点在于vector支持线程的同步,同时使得它访问性能相对差些。
HashTable使用synchronized来保证线程的安全。
二面:
二面是现场面,对我来说就有些难度,故未答好。
问题包括,深度优先和广度优先搜索,手写单例模式及其部分优化代码,数据库索引相关,手写堆排序算法,python库,个人以往项目中涉及安全及并发功能细节等。