前言
可能我算是比较幸运的,一开始找实习的时候,觉得找个工作可能会经历一番波折。而且,在听到有的同学一轮游之后,我也做好了被挂的准备,人生不就是这么起落落落落落嘛。但是后面竟然出奇地顺利,投了阿里,腾讯,字节,一路绿灯,幸运拿下三个offer。在牛客网上看了不少同学的面经,我把我自己面试中遇到的问题,分享给大家,希望能够给有需要的人一点帮助。
一、阿里云数据库dbs 后台开发 北京
3月9日 一面(视频面)
-
介绍项目,针对项目问了一些问题
-
linux中的内存分配(伙伴内存管理,slab层,kmalloc, vmalloc,malloc, mmap,这些是当时我讲的)
-
C/C++内的malloc内部实现(我当时讲的是csapp中的malloc实现)
-
C++的多态是什么?实现的原理是什么?
-
编程题:二叉树最近公共祖先
3月11日 二面+HR面(电话面,俩面一起)
- 介绍一下自己,讲述一下大学四年和研究生期间比较有代表的经历
- 介绍一下自己的每一个项目,每个项目的面试管都会发散性的问,比如换掉一个场景,你会怎么入手,怎么去解决?
- 中间突然接进来HR,问最近在学什么技术?为什么学这些?
- 遇到的最大困难是什么?你怎么解决的?你学到了什么?之后遇到这样的问题,你会怎么考虑?
- linux中的内存分配
- 硬中断和软中断
- 怎么用软中断去统计比如你项目中需要的数据?
- linux中统计软中断调用的命令是啥?
- mmap和direct_IO的区别?
这个部门真的挺好的,特别是二面的P9对我印象很好,我面完不久就说肯定是要给我offer的,昨天给内推的师兄说我实习不去阿里了,她还专门发消息问我,为什么不去了?然后跟我讲了还挺多的。
二、WXG 增值业务部 后台开发 深圳
3月22日 一面 (面呗视频面,初试)
- 自我介绍
- 多态是怎么实现的?
- STL中常用的容器有哪些?有哪些是线程安全的?
- TCP的三次握手?四次挥手?SYN攻击?
- struct和class的区别?空的struct占多大?
- linux中的nohup命令(简历中提到了这个)
- 怎么杀死一个进程?背后的原理是什么?
- 进程间的通信方式?
- 问我数据库还有redis了解不?我说不是很了解
- 左值和右值
- ++i和i++,哪个效率更高?背后的原理是什么?
- 编程题1:链表倒数第K个元素
- 编程题2:实现一个MinStack,push,pop,get_min都要是O(1)复杂度
3月23日 二面 (面呗视频面,初试,交叉面)
- 自我介绍
- 构造函数和析构函数可以是虚函数么?
- STL中sort排序的原理?
- static修饰的成员函数和类变量 有什么不一样?
- 输入一个网址到页面呈现经历了哪些过程?
- 数据库的事务特性?数据库的索引数据结构?
- 数据库的主键索引和非主键索引的区别?
- HTTP状态码: 302, 304
- 编程题:合并两个有序的数组
3月25日 三面 (腾讯会议,复试)
- 自我介绍以及介绍一个项目
- 有哪些函数是不能为虚函数?
- 进程,线程,协程的区别?
- 守护进程,孤儿进程,僵尸进程的区别?
- I/O多路复用
- 进程间的通信方式
- 通过共享内存和管道分别几次内核态和用户态的交互?
- 两个本地的进程通过socket,能不能不通过ip
- 最近有关注什么开源技术么?消息队列了解么?
3月30日 四面 (腾讯会议,复试)
- 自我介绍,项目介绍
- 负载均衡(项目中提到)
- 项目中用到的锁的内部实现?还有其他锁么?内部实现是什么?
- 信号量,网络编程
- 自我评价,有什么好的学习方法么?
4月6日 HR面 (腾讯会议)
- 家庭情况,学习方法,自我评价
WXG就是每次给我发面试邀请的时候,都是通过公众号通知我,不会说电话告诉你。而且我三面的时候,状态还是显示初试,我是当时面试的时候问了面试官,才知道那已经是复试。特别考察对于C/C++基础知识的掌握。
三、字节 基础架构 深圳
3月25日 一面 (牛客视频面)
-
自我介绍和项目介绍
-
B+树和B树的区别?
-
智能指针 auto_ptr shared_ptr weak_ptr,循环引用(这个可以用weak_ptr解决)
-
问打游戏么?我说打王者,问我什么段位?王者荣耀的排位机制是什么?可能运用到哪些数据结构和算法
-
怎么检测内存泄漏?答了静态和动态的两种方法
-
deque的内部实现?
-
编程题:k个元素为一组反转链表
3月29日 二面 (牛客视频面)
-
自我介绍以及项目介绍
-
I/O多路复用
-
缓存了解么?写缓存和读缓存可能出现的问题?缓存穿透、雪崩、击穿
-
nohup命令?(简历中写了)底层的内部实现是什么?
-
编程题:LRU缓存
3月31日 三面 (牛客视频面)
-
自我介绍以及项目介绍
-
进程与线程
-
两个进程同一个地址能访问同一片数据么?
-
python中的多进程,知道是怎么一回事么?
-
僵尸进程,在命令行中查看会怎么一个显示?
-
命令行中查看显示为D的,是啥进程?
-
Linux中有哪些锁?内部的实现原理是啥?
-
TCP和UDP的区别?
-
TCP的可靠传输?TCP滑动窗口?
-
栈溢出的可能情况?答:递归调用,分配太大的数组
-
C++的右值引用?作用是什么?减少内存拷贝,完美转发
-
C++的lambda表达式,传值方式?怎么用类实现?
-
hash碰撞怎么解决?如果多个线程同时碰撞,怎么办?怎么设计一种无锁的数据结构?
-
extern "C" 的作用?
-
c++重载是怎么实现的?
-
分布式共识算法 (Paxos, Raft),开源组件(mysql, redis) 我说只懂mysql
-
事务的四个特性?四个隔离级别?
-
编程题:最大子数组和
4月2日 HR面 (飞书视频面)
- 项目中最大的难点是啥?怎么解决的?
- 问我手中还有其他offer么?
全部评论
(6) 回帖