我面的是C++软件开发,一面大部分时间都是吹项目,吹完之后就问算法,算法现场编程的比较简单,还问了几道算法,几乎都是跟链表有关的,只讲大概思路,我记得有一题是如何判断链表是个环;后来就问的比较基础,都是C++特性,拷贝构造函数、虚继承、虚表、malloc和new的区别,还问到linux相关的,fork多线程;二面的话就比较难,完全被吊打,一上来就问一面面的怎么样,开场聊项目,问项目的东西问得比较细,一面项目基本都是自己说,二面项目面试官问得比较细,聊完项目问了数据库,数据库优化,哪个数据库性能较好,为什么;聊完数据库之后问boost、stl库,share_ptr与union_ptr的区别;之后就问平时用得比较多的设计模式,面试官选一个让我现场手撸;撸完就给几道题目,看看有没有内存泄漏,有几次构造,几次析构,都围绕内存泄漏的问题;完了之后还是看题目,数据对齐、内存移位等问题,给一个struct,写出sizeof和画出内存存储图,还涉及到位域的问题;之后还聊了多线程和锁,设计一道题目,在函数开始时上锁了,但由于中途疏忽忘记了解锁就return了,此问题该如何解决;最后还聊了下linux使用和开发的问题。这样子下来都差不多一个小时了,最后聊了下比较想去什么地方工作,还有公司有什么岗位比较适合我,还有什么问题这些。hr面就三个人坐一起,问下家庭情况,宿舍情况,如何解决矛盾等问题,还有同时拿到几个offer会如何选择,什么时候能来实习等这类问题。
C++岗位面得比较久,问得很多,而且问得很细,一面大概面了三四十分钟,二面也面了一个小时有多,二面的时候坐后面的都面了三个前端的了我都还没面完,而且,二面的时候不懂不要紧张,面试官还是挺nice的,现场撸码的时候因为紧张而忘记了很多细节,手撸设计模式的时候面试官一共提醒了我四次再认真检查一遍看看还有哪里漏了;遇到不懂时也可以跟面试官说下对于这个问题,你知道哪些,不知道哪些,面试官问我的每个问题,我都知道一点,面试官深入问下去,我就不懂了,总之就不要慌就对了,二面我也被吊打了,但我还是过了。offer这周会发,希望楼主能get个好成绩。