字节跳动后端一面、二面

一面

课题:

刚开始先问项目课题相关的内容。
之后问课题有没有需要改进的地方,我就引入新了解的网络IO模式的内容,就进入到基础考察环境。

基础知识:

------网络编程-------
1.I/O多路复用模式
2.select、poll、epoll
------C++语法-------
3.C++多态
4.虚函数的实现
5.malloc和new的区别
6.堆空间和栈空间的区别
7.什么情况回自动释放内存(答智能指针)
-----http编程-------
8.post和get的区别
这里答得不是很完整
9.问出了传参数的区别还有header
对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返 回数据);
而对于 POST,浏览器先发送 header,服务器响应 100 continue,浏览器再发送 data,服务 器响应 200 ok(返回数据)
-------数据库--------
10. SQL和NOSQL的区别,应用场景

编程题:

1.判断一个二叉树是二叉搜索树(中序遍历结果是按序的)
2.给出一个二维数组char,判断某个字符能不能通过在这个数组中上下左右移动得到(bfs)



二面

基础知识

数据结构
1.map和unorder_map的区别
2.红黑树是什么
3.为什么要分颜色
4.hash_map的实现方式
5.B树B+树特点和使用场景

设计模式
6.单例模式实现
7.懒汉模式、饿汉模式

操作系统
8.死锁
9.死锁的解决方式
10.死锁的预防
11.虚拟内存管理
12.段管理页管理区别特点

数据库
13.事务(ACID)
14.独立性的实现(锁?)
15.脏读、不可重复度、幻读
16.读不提交、读提交、可重复读、串行化
17.聚簇索引、非聚簇索引

算法题

给数组[1,2,1000,5,5000],要求按照随机返回数组的其中一项,概率是:数组项值/数组值总合
考察编程思想,需要细心,做好边界判断,不要急。

开放题

你有什么优点我没有问到的可以补充吗?
说自己的一个项目,实现和改进思路。


#字节跳动实习##字节跳动##实习##C++工程师##面经#
全部评论
之前有笔试吗?
点赞 回复
分享
发布于 2020-04-13 20:23

相关推荐

点赞 评论 收藏
转发
1 34 评论
分享
牛客网
牛客企业服务