笔者非科班转行,两个月拿了十多个offer,其中包括了互联网大厂,央企,国企,银行等,下面看看都面了什么(部分回忆)。总之,在面试国企等企业时,会有一些有意思的问题,也会出现群面的场景。本文收录于面试集锦
1 阿里一面
- 指针和引用的区别
- define和const
- 内联函数和define
- c++内存管理
- 栈和堆区别,全局变量和局部变量
- c++多态,虚函数,纯虚函数
- 多态的好处
- 数据库索引,给一个语句问有没有用到索引,底层怎么实现的
- B树和B+树
- 哈希冲突
- 说一说常见的排序算法和时间,空间复杂度
- TCP,UDP,可靠传输,网络什么时候拥塞
- 为什么要内存对齐
- 非对称加密和对称加密
2 电信研究院
- 操作系统linux会用吗,用啥系统
- static变量和局部变量知道不
- 内存溢出
- 服务器什么操作会不
- c++用的多吗
- 想做什么岗位
- linux命令会吗
- epoll和select
- sed和grep知道不
- awk
- 有什么爱好
- 你会打桥牌?
- 台球打的不错吗?
- 篮球会不会
- 王者荣耀啥段位
- 喜欢玩啥位置
- 哪个实验室的,导师叫什么
- 过两天来你们学院,记得过来
这个。。。。
3 拼多多
- 你会gdb调试?说一下gdb调试的原理
- 你用过git,讲一下原理
- 你熟悉哪些linux命令,回答了解复制之类的,然后问,cpu的原理你讲一下
- https1.1和2.0的区别,答出来了,为什么,怎么实现的?
- c++11有哪些特性,你实现一下shared_ptr
- tcp为什么可靠?tcp重传的时间怎么设的,(一个消息都得不到ACK)
- 多线程怎么进行调度
- 用过mysql吗,说一下B+树
- 这是你的笔试题啊,考察一下你的算法吧,这个第三题你做错了,有思路吗,说没有,那你现在想一下
- memcpy写一下
- strcpy写一下
- 了解c++多态吗,那你用c实现一下。
- 操作系统忘了。
4 腾讯TEG
-
擅长的语言(C语言,C++),对C++的了解程度
-
Linux的项目平台经验多吗?
-
malloc和new分配内存的区别
-
malloc内部的实现原理
-
malloc能够分配的最大内存空间(32位)(提到了段),如果申请了2G的内存,会立即与物理地址对应吗,如果不会,往里面写数据的时候是否会产生缺页中断
-
如何查看段的范围和大小
-
elf目标可执行文件的组成部分,elf文件中的段跟运行时的段有什么区别
-
如何装载目标文件到内存当中
-
缺页中断的处理过程
提到了换页换出的时候会产生缺页中断,反问是否一定是换页产生的吗?上面提到的未分配空间呢?
- 这种缺页中断在系统和硬件中是由哪些CPU,寄存器参与的。
提到了MMU,CR3寄存器
-
为了加快页表的转换,会使用一些什么样的硬件和软件
-
了解大页内存吗?它是什么概念,有什么优点和缺点。
优点:减少页表
- 对于汇编这部分了解多吗?C语言的函数调用在汇编的角度是怎么实现的?
提到了ebp,esp函数栈,jmp跳转
-
Linux库函数memcpy,能不能想出比较高效的内存拷贝方式。除了按字节拷贝还有没有性能更好的方法。
-
Linux上运行的进程的CPU有什么组成部分,整体的CPU占用和每一块的CPU的占用。怎么用top去看一个进程的CPU占用的组成部分。(是不是做的性能优化这部分的工作比较少)
-
C++ STL里面有很多性能优化相关的类,这个你了解吗?STL的string类本身有多大,如何保存字符串的?vector如何动态扩展空间?
提到了size()和capacity(),但是发现这个问题答错了
-
挑一个研究的最深的技术点。挑自己最擅长的说,比如说网络编程、系统内核啊等等
-
乐观锁和悲观锁的区别
提到了CAS
- 问到了CAS的应用场景,CAS允许有短暂的访问迟滞吗?
提到了读商品和写商品(然后发现场景错误)
- CAS为了实现锁的原语,在Linux系统上是怎么去实现的?
谈的是RING中的源码,使用多个struct,但是他说没有谈到点上,想问的是背后原理(汇编也好,x86架构上也好)(可能是单句汇编语言,或者是总线锁)
- volatile关键字的作用?主要是为了解决什么问题?为了防止编译器进行哪种方式的优化?
为了防止编译器优化,最核心的是做了什么优化,怎么理解直接去读这个值
-
缓存是一个什么样的硬件?
-
寄存器也算是缓存的一部分吗?
-
CPU访问寄存器、访问缓存、访问内存哪个快?访问的时间周期是多少?快多少倍?
-
本科、研究生、实习做的项目和事情中哪个事情比较满意,能够体现自己的能力的?
-
技术也好、做事情的方式也好的优势和劣势?
-
你是哪个地方的人?为什么不参加实习生的招聘?
-
你有什么问题吗?
5 某行
- 你知道预编译吗
- 你说了define,那你说他和函数有啥区别
- 哪个更快,为啥
- 你提到了栈,那你说一下栈和堆
- 你实习过吗,华为实习主要做啥
- 你们班有几个人实习了
- 做了一道简单的算法题
- 有没有转正
- 加班吗
- 你想做什么方向,c++还是java还是python
- 毕设做什么
- 几个人做
- 数据库会吗
- 机考做了几道题
- 家在哪里
- 打算在哪里工作
- 喜欢武汉吗
- 有女朋友吗
- 差不多就这些
6 追一科技
- 为什么不用CNN,用LSTM
- LSTM为什么可以缓解梯度消失
- 什么是梯度消失和梯度爆炸
- 为什么要提取时序信息
- 说一下RNN和CNN
- 你说一下虚指针
- 写一下单例模式
- 别的进程可以访问这个进程的创建的单例模式的实例吗
- 你说一下内存泄漏
- 有几个虚函数表
- while(1)死循环
- attention机制
- 说一下继承中的构造函数和析构函数
- 野指针讲一下
- 你学过哪些课程,那你说说红黑树
- 你说一下平衡二叉树怎么插入一个结点
- TCP怎么重传
- 共享内存为什么可以实现进程通信
- 每个进程都有自己的内存,为什么可以访问共享内存
- 你知道希尔排序吗,比直接插入排序快吗,为什么,时间复杂度平均多少
- 单链表快排
- 写一下反转单链表
7 总结
如果尝试国企,研究所,银行等,可以通过提前参加他们的培养生计划,这样进入机会会更大。当然,如果你是985,进入这些企业的机率确实会更大的,谁让人家是985对吧,我们不得不为自己曾经的不努力买单。但是机会一定是给时刻准备着的小伙伴,so,冲吧!资料整理在下方文章,你的star是我最前进的动力