非科班面试阿里,拼多多,银行都问了些啥?
笔者非科班转行,两个月拿了十多个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是我最前进的动力
版权声明: 本文为 InfoQ 作者【我是程序员小贱】的原创文章。
原文链接:【http://xie.infoq.cn/article/104e53c5426fa50e9f9f3898e】。文章转载请联系作者。
评论