投的北京后台,然后深圳的直接捞了。
个人背景:本科应届,ACM两个牌,字节实习。
最开始以为是kpi面,结果不是。
————分割线————
自我介绍
C++用的多还是Java用的多 —— cpp
new 和 malloc区别
malloc底层实现(就是brk和mmap)
const 作用和应用场景 每个场景有什么区别
static 所有应用场景和区别
虚函数了解吧,讲讲
动态绑定虚函数实现原理
虚函数表 虚指针
构造函数和析构函数是否能设为虚函数 为什么
一个空类都有什么默认函数(构造,析构,拷贝构造,重载=,还有一个寻址函数没答上来,但提示了)
STL用过吗
vector和list区别,底层是如何实现的,哪个查找效率高,为什么
map底层原理,红黑树是什么,红黑树的特性和优点,avl和bst呢?
算法题 给了个场景,一眼看就是AC自动机,然后实现一下,字典树如何实现,用什么样的数据结构。
写个快排
C++可能还有一些都答得挺好,除了寻址函数其他基本都ac了
网络编程了解吗
三次握手四次挥手
连接过程中服务端是什么状态,是阻塞的吗,为什么是阻塞的,要是不阻塞会怎么样。
还有一些传输层相关的东西,答得一般,都是怼到不会为止。
操作系统
进程线程区别
进程通信都有什么方法
消息队列内核是如何实现的
信号量Linux是如何实现的,如何进行进程的通信
共享内存在哪,有什么用,底层是如何实现的
共享内存能放什么样的数据结构,是用什么数据结构实现的
共享内存里能放vector吗,为什么
信号了解吗,进程的信号通信底层是如何实现的
多进程项目写过吗(没有)
讲讲I/O模型
I/O复用
写过epoll吗,现在实现一下(???)
写过IO模型吗
多线程模式下如何通信
线程之间的栈能否通信,如何通信,数据互通吗?
线程的信号量如何实现
用过什么锁
除了互斥锁你还能用什么方法来实现线程同步
PV操作如何实现的
你还了解哪些线程同步
写过客户端和服务端通信吗
客户端发送一个请求,服务器突然挂掉了,客户端会怎么样,为什么
你如何实现这个过程
如何不通过发送包里的信息保证服务器知道是哪一个客户端发送的
如何保证万无一失
Linux源码写过吗
Linux进程资源分配
数据库有哪些了解,InnoDB MySQL Redis?
数据库事务,特性,隔离等级
数据库的锁了解过吗
索引是什么
MySQL的索引是如何实现的
B树和B+树的原理,如何实现的
索引查找和主键查找哪个快,为什么
索引叶子节点存的是什么,为什么
如何添加一个锁
InnoDB如何实现的锁
剩下就是一些场景,如何解决,如何实现,为什么这么实现,都不会了。
反问环节
一个多小时每一个问题都会绕到Linux底层源码是如何实现的,为什么这么实现
被怼了一个多小时,他说没有问题要问了我以为已经凉了
然后说你面的还不错,有兴趣可以好好准备一下
建议我回去多写写Linux源码和进线程通信的底层实现。
面试官一看就是技术很牛逼的,全程脾气也很好,也有诱导和提示,体验还行,就是自己太菜了。
十分钟以后看居然过了,真不知道二面会问些什么。。
提前许愿三面。
全部评论
(9) 回帖