小米c++开发工程师面经
📍面试公司:小米
🕐面试时间:8.21
💻面试岗位:c++开发工程师
❓面试问题:
1.自我介绍
2.C++中malloc和new的区别?delete和delete[]能混用吗?
3.什么是虚函数表?多重继承下的虚函数表结构是怎样的?
4.智能指针有哪几种?shared_ptr的线程安全性如何?循环引用怎么解决?
5.如果类中有const成员或引用成员,能否自动生成移动构造函数?为什么?
6.std::vector的扩容机制是什么?扩容时代价多大?如何避免频繁扩容?
7.什么是内存对齐?为什么需要内存对齐?如何手动控制结构体的内存对齐?
8.如何使用Valgrind或ASAN排查内存泄漏和越界问题?你在项目中用过吗?
9.说说std::map和std::unordered_map的底层实现及时间复杂度
10.如何用GDB调试死锁?thread apply all bt 这个命令有什么用?
11.进程和线程的区别?进程间通信有哪些方式?哪种效率最高?
12.线程同步有哪些机制?std::mutex、std::lock_guard、std::unique_lock的区别?
13.什么是虚假共享(False Sharing)?如何避免?
14.讲一下TCP拥塞控制机制?TIME_WAIT状态的作用是什么?
15.Epoll的水平触发和边缘触发有什么区别?使用场景是什么?
16.手撕:实现一个线程安全的环形队列(支持多生产者多消费者)
17.手撕:二叉树锯齿形层次遍历(Zigzag Level Order)
18.项目深挖:
🙌面试感想:
面经题并不刁钻,主要以项目为主,问了很多项目的细节
#发面经攒人品#
🕐面试时间:8.21
💻面试岗位:c++开发工程师
❓面试问题:
1.自我介绍
2.C++中malloc和new的区别?delete和delete[]能混用吗?
3.什么是虚函数表?多重继承下的虚函数表结构是怎样的?
4.智能指针有哪几种?shared_ptr的线程安全性如何?循环引用怎么解决?
5.如果类中有const成员或引用成员,能否自动生成移动构造函数?为什么?
6.std::vector的扩容机制是什么?扩容时代价多大?如何避免频繁扩容?
7.什么是内存对齐?为什么需要内存对齐?如何手动控制结构体的内存对齐?
8.如何使用Valgrind或ASAN排查内存泄漏和越界问题?你在项目中用过吗?
9.说说std::map和std::unordered_map的底层实现及时间复杂度
10.如何用GDB调试死锁?thread apply all bt 这个命令有什么用?
11.进程和线程的区别?进程间通信有哪些方式?哪种效率最高?
12.线程同步有哪些机制?std::mutex、std::lock_guard、std::unique_lock的区别?
13.什么是虚假共享(False Sharing)?如何避免?
14.讲一下TCP拥塞控制机制?TIME_WAIT状态的作用是什么?
15.Epoll的水平触发和边缘触发有什么区别?使用场景是什么?
16.手撕:实现一个线程安全的环形队列(支持多生产者多消费者)
17.手撕:二叉树锯齿形层次遍历(Zigzag Level Order)
18.项目深挖:
🙌面试感想:
面经题并不刁钻,主要以项目为主,问了很多项目的细节
#发面经攒人品#
全部评论
相关推荐
09-02 12:09
郑州大学 后端工程师 

点赞 评论 收藏
分享