首页 > 个人2022秋招知识点总结、C++/Linux
头像
给我取个名字
编辑于 2022-04-01 17:38
+ 关注

个人2022秋招知识点总结、C++/Linux

个人求职方向涉及了嵌入式、后端基础架构、Linux系统层开发(内核)。拿到了大厂的offer,具体我就不透露了。
之前一直看牛客老哥们的面经分享,所以我也整理了一些我认为比较重要的C++和Linux的知识点给大家参考。
秋招结束,完结撒花

C++

  • makefile问题,如果你的岗位是Linux下的C++,这个务必要会,并且要真正敲过一遍
  • 常量与引用
  • 右值引用有什么用
  • 转发、完美转发、万能引用、std::move
  • 结构体对齐,如何设置和取消结构体对齐
  • 函数参入传入过程,什么是寄存器传参和内存传参
  • 堆、栈。各自保存什么?栈保存的哪些东西?
  • 内存分为几个段
  • 虚函数表,虚函数指针,虚函数各自放在哪个段中
  • 空类大小是多少,空结构体大小是多少
  • 什么是多态,如何实现的?
  • RTTI和RAII是什么
  • 智能指针:为何不用auto_ptr?有哪些弊端?shared_ptr如何设计的?是否线程安全?
  • STL相关
    • sort如何设计的
    • map和unordered_map底层实现
    • 自己实现一个vector
  • #define和const区别
  • #define和inline区别
  • NULL和nullptr区别
  • const与constexpr区别
  • __attribute__关键字
  • C如何调用C++,C++如何调用C
  • struct和class区别
  • 编译过程
  • gdb使用
  • 初始化列表与构造函数区别
  • 函数指针如何指向类的静态方法和动态方法
  • 如何暴露static函数
  • 临时对象销毁时机,可能引发的问题
  • 重载操作符
  • C++关键字
  • asmlinkage关键字
  • 萃取、元编程
  • 不用final如何设计不能被继承的类
  • 无锁编程如何实现
  • void (*f[3])(int)是什么意思
  • int(*fun())()是什么意思
  • 函数传参和返回值,调用哪个构造函数?
  • 编译器默认生成的4个成员函数
  • C++11和C++14新特性
  • 一个容器能用上 for( : )循环,需要做什么
  • 多重继承的问题,如果使用多重继承,那么二义性如何解决?
  • 析构函数为什么要是虚函数,构造函数为什么不能是虚函数
  • 静态多态和动态多态
  • 如果用空指针调用成员函数,会怎么样
  • 什么是类型安全
  • 数组名也是指针,那么它和指针有什么不一样?可能造成什么问题?
  • 为什么dynamic_cast需要类中有虚函数?
  • 抽象类和普通类区别,如何定义抽象类?
  • 如何实现无锁队列
  • 深拷贝、潜拷贝
  • 模板全特化、偏特化
  • 如何在mian函数之前,之后,运行特定的代码
  • 如何定位段错误、如何定位内存泄漏
  • 如何实现一个内存池?

Linux&操作系统

  • MAN手册使用
  • Linux信号、不可忽略的信号
  • 进程同步机制、线程同步机制
  • 进程调度算法、线程调度机制
  • CFS完全公平调度、时间片轮转调度
  • 进程调度、线程调度的区别与损耗对比
  • 进程退出的几方式
  • 陷入内核态的途径有哪些
  • 进程状态模型、Linux几种进程状态
  • 僵尸进程、孤儿进程、守护进程等
  • 缺页中断发生的时机,处理办法(kmalloc会发生缺页中断吗、vmalloc会发生缺页中断吗)
  • 死锁必要条件
  • 内存管理问题(段、页、段页式、slab、ptmalloc)
  • fork、vfork、clone以及写时拷贝
  • Linux 5种IO模型
  • Linux 文本处理三剑客awk、grep、sed
  • Linux 重定向、软连接、硬链接、inode
  • Linux 7种文件类型
  • 常用命令考查(vim、ls、cd、pwd、df、top、ps)
  • 系统调用过程(以read为例)
  • 中断过程、判别中断+各种锁的使用情况,以及可能出现的问题
  • malloc申请40G、0字节 分别会发生什么
  • 虚拟内存(MMU、TLB)
  • Linux 信号实现机制
  • 利用/proc目录计算CPU利用率
  • select、poll、epoll特点、区别

总结

每个问题面试官都有可能深挖,这样光背诵八股文是完全不够的。每个问题最好问自己三个问题:

  1. 为什么要这样用?你会怎么设计?
  2. 这样的好处有哪些,缺点有哪些,特点有哪些,适合做什么。
  3. 是否在实际项目中用过?

以上三个问题只是非常典型的深入下去的问题,如果没有准备,一看就知道你是背诵的,没有实际经验。

差不多就这么多啦!!!

全部评论

(7) 回帖
加载中...
话题 回帖