下午五点多打电话过来二面,首先还是自我介绍,然后面试官问了课题,讲了大概十多分钟,根据一面的经验,我判断他对我的课题其实不感兴趣,但他还是问了你这个算法怎么优化之类的。然后他问我对操作系统文件懂多少,这个确实懂的不多啊,他就改问进程和线程之类的,互斥啊同步啊mutex加锁CPU调度啊等等,说了一大堆。然后又问C++怎么对内存进行管理,我说C++没有垃圾回收,需要自己new了再delete,当然也可以用智能指针,说了一下智能指针的实现原理,
又问了malloc,free,fill之类的,讲了一下fill和memset的区别。我记得fill是按类型进行填充的,memset是按字节填充的。然后问我C++开源的项目看过没有,这个真没看过,只看过一些比较小的项目。问我平时对哪个方面感兴趣,我说UNIX网络编程比较熟悉,空闲的时候到OJ上做题,结果他根本不问。。。话题一转,问了数据库懂多少,我就说这个懂的不多,只用过MySQL,他问为什么索引是B+TREE而不是别的,这个我还真的知道,所以讲了一大堆。然后他说问我最后一个问题,C++多态的作用,我说简单来讲可以精简代码量,写一个接口然后可以各种实现,代码复用和重构之类的,然后我不知道怎么脑子抽风了又提到Java,结果他又问了servlet
3.0的新特性,这算是加试吗?真不记得了啊。
整体来讲其实一般般,因为他问的都不难,虽然我基本都回答上来了,但是文件系统和数据库这两个我直接告诉他懂的不多,肯定是硬伤,再加上对开源项目了解的不够,最后就挂了。总结来说还是知识不能有漏洞,而且开源项目还是要接触一些,这些应该是最近要加强的地方。