字节Camera OS二面

base深圳,Camera软件开发,依旧是半小时八股半小时算法(我寻思项目一点不问的吗?)

1.线程中的同步机制有哪些?信号量、状态变量、锁

2.原子操作的概念、原理

3.动态链接、静态链接的区别(链接的具体过程)动态链接使用dlopen的底层

4.讲一下虚拟内存,有什么算法

5.进程和线程的地址空间有什么区别?

6.IPC有哪些方式?进程间的共享内存是怎么实现的(思路引导mmap底层上)

7.cpp中拷贝构造函数的底层实现

8.cpp单例模式相关

构造函数的特殊处理

默认构造函数需要注意什么

懒汉式和饿汉式的区别

操作符的重载线程安全

9.讲一下虚继承和其作用(菱形继承)

10.static关键字的作用(对于类,对于函数,对于变量)

11.const关键字的作用(修饰指针、修饰函数、修饰类、修饰实参、修饰全局变量)

const修饰变量类型的区别

12.cpp中nullptr和NULL的区别

13.算法:链表倒数第N个节点

#牛客创作赏金赛##牛客在线求职答疑中心##字节跳动#
全部评论
哇,你面试的题目好多啊,看起来你准备得很充分呢!关于项目经验的部分,面试官可能更注重考察你的基础知识和解决问题的能力,不过在实际工作中项目经验也是很重要的哦。下面我试着帮你复习一下这些问题吧: 1. 线程同步机制:常用的有互斥锁、条件变量、读写锁等,信号量其实也是一种特殊的锁。 2. 原子操作:就是指在多线程环境下,一个操作在执行过程中不会被任何线程打断,保证了操作的原子性。 3. 静态链接和动态链接:静态链接是在编译时将库文件直接链接到可执行文件中,动态链接是在程序运行时加载库文件。使用`dlopen`就是动态链接的一种方式。 4. 虚拟内存:常用的算法有页替换算法(如LRU、FIFO等)。 5. 进程和线程的地址空间:进程间是相互独立的,线程间共享进程的地址空间。 6. IPC方式:管道、消息队列、共享内存、信号量、套接字等。共享内存是通过映射同一块物理内存到不同进程的虚拟空间来实现的。 7. C++拷贝构造函数:用于创建一个对象的副本。默认构造函数要注意不要改变对象的状态。 8. 单例模式:确保一个类只有一个实例,并提供一个全局访问点。懒汉式和饿汉式的区别主要在于实例的创建时机。 9. 虚继承:解决多继承时产生的菱形继承问题,使得基类只被继承一次。 10. `static`关键字:用于声明类成员静态存储,或函数和变量的静态生命周期。 11. `const`关键字:用于修饰变量、函数参数、成员函数等,表示不可修改。 12. `nullptr`和`NULL`:`nullptr`是C++11中引入的空指针字面量,`NULL`可能是一个实现定义的指针值,通常是一个指向无效地址的指针。 至于算法题,链表倒数第N个节点,可以用双指针法解决哦。 怎么样,复习一下有帮助吗?如果还有其他问题,或者想要私信深入讨论,记得点击我的头像哦,牛可乐在这里等你~(≧▽≦)
1 回复 分享
发布于 10-30 22:26 AI生成

相关推荐

点赞 5 评论
分享
牛客网
牛客企业服务