字节跳动C/C++方向面经

一面:
      1.虚拟地址是怎么转化到物理地址的?页表的构成?mmu了解过吗?

      2.操作系统中的原子操作是怎么实现的?

      3.C++中的内存分区?bss段了解过吗?未初始化的全局变量和初始化的全局变量放在哪里?

      4.内存对齐?为什么字节对齐

      5.vector中push_back和emplace_back的区别?

      6.C++中的多态?说一下虚函数的多态?

      7.内联函数?内联函数的缺点?

      8.tcp的可靠传输?拥塞控制?流量控制?

      9.IP数据报的报头字段?TTL的设置了解过吗?

      10.怎么实现断点续传?

      11.算法题:最长回文子串

二面:
      1.介绍一下项目?

      2.http状态码有哪些?

      3.http1.0,2.0版本的区别?

      4.在游览器输入URL之后,具体流程是什么?

      5.说一下事务?说一下隔离性?

      6.进程间通信?说一下原理?共享内存是如何确定物理地址的?

      7.纯虚函数?使用场景有哪些?

      8.为什么一般将析构函数设置为虚函数?

      9.C++11中的auto是怎么实现识别自动类型的?模板是怎么实现转化成不同类型的?

      10.编程题:三个线程,依次打印1-100

      11.编程题:输出字符串的全排列

三面:
      1.介绍项目?

      2.职业规划是什么?

      3.为什么想从事客户端开发?

      4.大学期间学习路径是什么,怎么学习的?

      5.项目过程中遇到过什么困难?

      6.哪一个项目对你学习帮助最大?

      7.项目有应用层的设计吗?

      8.编程题:k个一组,反转链表
全部评论
m
1 回复 分享
发布于 2023-07-15 21:15 北京
m
点赞 回复 分享
发布于 2023-07-06 09:15 上海
m
点赞 回复 分享
发布于 2023-07-06 09:17 重庆
m
点赞 回复 分享
发布于 2023-07-06 09:31 湖南
点赞 回复 分享
发布于 2023-07-06 09:55 湖北
m
点赞 回复 分享
发布于 2023-07-06 10:32 湖北
m
点赞 回复 分享
发布于 2023-07-06 10:54 重庆
已经提前批了吗?
点赞 回复 分享
发布于 2023-07-06 11:37 浙江
m
点赞 回复 分享
发布于 2023-07-06 13:50 北京
m
点赞 回复 分享
发布于 2023-07-06 21:51 陕西
m
点赞 回复 分享
发布于 2023-07-06 22:56 台湾
m
点赞 回复 分享
发布于 2023-07-07 08:09 北京
m
点赞 回复 分享
发布于 2023-07-07 08:32 四川
m
点赞 回复 分享
发布于 2023-07-07 09:43 陕西
m
点赞 回复 分享
发布于 2023-07-07 12:42 浙江
m
点赞 回复 分享
发布于 2023-07-07 14:00 北京
m
点赞 回复 分享
发布于 2023-07-08 11:22 山西
m
点赞 回复 分享
发布于 2023-07-08 14:27 浙江
M
点赞 回复 分享
发布于 2023-07-08 15:56 广东
m
点赞 回复 分享
发布于 2023-07-08 22:14 广东

相关推荐

02-22 16:14
已编辑
上海交通大学 产品经理
华东小跳虎:我理解 在没实习情况下,可以输出写自己思考,如何挖掘到问题,并是如何进行分析的,业界其他竞品是怎样解决这个问题他们的效果如何,你的观点等等
点赞 评论 收藏
分享
new和malloc的区别?c++里new了数组怎么释放?32位系统的指针变量占多大字节?int*呢?空类呢?c++多态?为什么需要虚析构?虚析构实现原理?c++可以不写构造函数吗?编译器默认除了构造还会有什么?深拷贝和浅拷贝区别?智能指针哪个c++版本引入的,作用?用过哪些容器?项目里用了哪些容器?为什么用qlist?qmap什么是key?模板的好处?什么时候会用?设计模式了解哪些?自己写过吗?单例模式怎么写?单例要返回非静态指针类型怎么弄?队列和栈的区别?osi七层以及相应协议?网络层的协议?应用层?一些项目问题...网络加密算法知道哪些?tcp的三次握手四次挥手回收写过吗?写服务器基本模...
AI牛可乐:哇,你分享了好多面试经验呢,听起来你准备得很充分呢!👍 关于你提到的技术问题,我来帮你解答一下吧: 1. `new` 和 `malloc` 的区别?`new` 会自动调用构造函数,而 `malloc` 只负责分配内存。`new` 数组释放时用 `delete[]`,比如 `delete[] myArray;`。 2. 在32位系统中,指针变量通常占4个字节,`int*` 也是如此。 3. 空类的实例通常占1个字节,但具体实现可能不同。 4. C++多态允许我们通过基类指针或引用来调用派生类的函数。需要虚析构是因为基类指针可能指向派生类对象,不使用虚析构可能导致派生类析构函数不被调用。 5. 如果不写构造函数,编译器会提供一个默认构造函数。默认构造函数会进行成员变量的默认初始化。 6. 深拷贝和浅拷贝的区别在于,深拷贝会复制对象的所有字段,包括指向的内存内容;浅拷贝只复制对象的字段值,不复制指向的内存内容。 7. 智能指针是在C++11版本引入的,用于自动管理内存,防止内存泄漏。 8. 常用的容器有 `vector`、`list`、`map` 等。具体使用哪个容器取决于项目需求。 关于你问的其他问题,我简单回答一下: - `QList` 通常用于需要频繁插入和删除的场景。 - `QMap` 的 `key` 是映射表中的键值。 - 模板的好处是提高代码复用性,减少代码冗余。 - 设计模式有很多种,比如单例模式、工厂模式等。单例模式可以通过静态成员函数实现。 现在,悄悄告诉你一个小秘密,点击我的头像,我们可以私信聊天哦~🎉 那么,你平时在项目中都用过哪些容器呢?有没有什么特别的经验或者技巧可以分享的呢?😊
点赞 评论 收藏
分享
评论
92
811
分享

创作者周榜

更多
牛客网
牛客企业服务