在长达半个月的等待之后,终于迎来了人生中的第一次面试,感谢吉比特以及面试我的......哥哥?还是叔叔?(没看太清)把我捞起来,总共持续了大概50min。
面试的内容有一部分是准备过的,但是也有好几个问题是我没有接触过的。
一、基础知识
- static关键字怎么理解的......
- const关键词呢?......那如果const修饰一个函数呢?比如:const{}。遇到过吗?---我在编程中没遇到过,不好意思。
- 多态知道吗?......说了静态--函数重载,动态---虚函数)
- 虚函数表知道吗?......(每个类一张表,对象掌握指针去访问,可以被继承......)那你知道虚表的底层是怎么实现的吗?---不知道
- 内存泄漏知道吗?......那怎么检查泄露呢?......
- 模板知道吗?......不知道,只知道vector、map、unorder_map等都是模板
- 智能指针知道吗?......(shared_ptr,unique_ptr,weak_ptr)......计数器.......禁止拷贝和赋值操作......那unique_ptr底层是怎么实现的呢为什么就禁止拷贝和赋值呢?(填坑:unique_ptr探究)---不知道,那weak_ptr怎么用的呢?......只知道和shared_ptr好像是一起用的。
- 深拷贝和浅拷贝知道吗?......
- 隐式类型转换知道吗?---不知道,只知道强制类型转换(后来想想似乎课上讲过...)
二、操作系统
- 进程通信的方式......(信号量、管道、共享内存、套接字、还有几个不常用的)......你刚才谈到剪贴板,你认为它安全可靠吗?.....不可靠......
好像还有的,忘记了
三、数据结构
- 常用排序算法以及复杂度分析一下?冒泡、选择、直插、归并、希尔......
- 堆排序了解吗?.......堆的建立复杂度怎么样?......
- 二分查找了解吗?复杂度是多少?......
- 哈希冲突怎么解决呀?......
- 红黑树了解吗?......(和平衡二叉树比较了一下查找、插入和删除复杂度)
- 如何判断图的联通性呢?(dfs,bfs,并查集)......那你知道并查集是怎么实现的吗?---不知道,不好意思。
- 最小生成树知道吗?---不知道。
- 一个文件去除重复行......(我问这个文件大吗?-先从小的说起)...Linux中 sort | uniq > *.*,awk '!x[i++]' Windows中可以用map来存,逐行查找....那这个文件很大怎么办?大到内存装不下怎么办?-(我问可以给点提示吗?-利用外存)......最后还是认怂,不知道了。
四、设计模式
- 知道那些设计模式?......
- 组合和继承怎么用?---不会
- 单例模式了解吗?
- 写一下多线程下的单例模式吧,就写一下getInstance吧!......
五、简短的聊
- 你有什么问题吗?---请评价一下我今天的表现吧......
- 我又补充了一个lambda表达式......又问了我一个右值引用......不会。
- 想做客户端还是服务端......(我说我都可以,我还年轻还能学习......)
- 能实习多长时间......
没和我闲聊多少,大概是看我太菜了吧.......
结束。
后记
第一次面试,面试官还不错,会引导你。现在还不知道结果。通过这次面试我也知道,我还有很多需要学习的地方。比如设计模式该好好捡一捡了。图的方面也不熟,
昨晚做了360的笔试,有种想哭的感觉。从前我觉得人和人的智商差距不大,但做过智力题之后,我有所改观了。周六还有腾讯和网易的笔试,加油吧,菜鸡!