c++后台开发面经整理

系统

  • 内存分配的流程
  • 虚拟地址和物理地址转换
  • 实模式和保护模式
  • 执行可执行文件时操作系统做了什么
    fork 分配内存 pcb 进程状态 对应页表 文件描述符 信号mask exec
  • 大小端存储
  • 进程和线程
  • 内核态/用户态切换,引起切换的方式
  • 静态库和动态库的区别
    https://www.cnblogs.com/codingmengmeng/p/6046481.html
  • cache原理
  • 进程调度 分时系统结合优先级怎么实现
  • 进程的状态
  • 死锁
  • 内存抖动

网络

  • TCP三次握手,为什么/优化
  • TCP四次握手,为什么,finwait1/2,closewait
  • timewait哪一方/为什么
  • TCP加密
  • 拥塞控制
  • 滑动窗口
  • ping/traceroute
  • 路由选择协议(RIP/OSPF/BGP)
  • TCP和UDP区别
  • TCP沾包/拆包
  • TCP和UDP数据包的大小限制(TCPMSS和以太网MTU)
  • DNS/DHCP/ARP
  • ARP欺骗
  • http状态码,常用指令
  • POST和GET区别
  • https和http区别,原理
  • cookie和session
  • select/poll/epoll
  • 同步/异步/非阻塞
  • veth/bridge

LINUX

  • read/write的流程
  • 文件系统结构
  • 零拷贝
  • 守护进程/实现
  • 进程间通信
  • 线程间同步
  • 信号量和互斥锁的区别
  • copy on write(fork/aufs)
  • 条件变量

数据结构

  • RBT/AVL/B树比较,B树为什么是B树不是多叉树
  • 红黑树的性质
  • 跳表和红黑树的区别
  • 哈系表冲突的解决方式

C++

  • union类的内存大小
  • 深拷贝/浅拷贝
  • 指针和引用
  • 和c的区别
  • 多态/虚函数
  • 如何防止内存泄漏
  • vector元素取地址传参
  • vector deque list区别
  • STL内存分配
  • map和unordered_map区别
  • new和malloc
  • 野指针/空悬指针
  • 编译过程
  • c++内存分布
  • 类内存模型,空类大小
  • 内存对齐
  • 智能指针的线程安全
  • STL的线程安全
  • C++11特性
  • 智能指针的实现
  • 内存屏障
  • static
  • extern
  • const
  • volatile
  • 常成员函数
  • 重载和重写
  • strlen和sizeof
  • 构造函数为什么不能是虚函数,析构函数为什么要是虚函数
  • override

SHELL

  • top
  • awk
  • | >
  • ps
  • 文本排序/去重
  • tail/less/more/head
  • 定时执行crond
  • nohup
  • sed
  • 代码调试

数据库

  • 事务
  • 隔离级别
  • 并发问题
  • 乐观锁/mvcc原理
  • innodb/mysiam
  • 索引的实现
  • b+树区别
  • 聚集索引/非聚集索引
  • 回表查询
  • 三范式/目的
  • 负载均衡
  • 最左匹配
  • 一致性哈系
  • CAP原则
  • redis数据结构

设计模式

  • 单例模式/实现方式
  • 观察者模式
  • 工厂模式

算法/智力问题

  • 大数找不重复的数
  • 大数单词频率TOP K
  • 大树数大小TOP K
  • 不用临时变量交换两个数
  • 1000瓶药/10只老鼠试毒
  • 赛马问题
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值