讨论/求职面试/腾讯--C++工程师面经--全面整理/
腾讯--C++工程师面经--全面整理

dc520c2afe835b2b6c50adc9ec9cf3cc.jpg

语言

  • C 和 C++ 的特点与区别
  • C++ 的多态是如何实现的
  • C++ 的虚函数是如何实现的
  • C++ 的内存管理
  • C++ 11 有哪些新特性
  • 可变参数模板的作用
  • malloc 的原理
  • 智能指针有哪几种
  • 如何解决智能指针循环依赖的问题
  • STL 中 Vector,List 和 Map 的底层原理
  • inline 的作用
  • struct 和 union 的区别
  • static 关键字的用法
  • C++ 中如何避免拷贝
  • 指针和引用的区别
  • 如何让 .h 文件不被重复引用
  • 怎么防止内存泄漏
  • new 的作用
  • delete 和 delete[] 的区别

网络

  • 三次握手和四次挥手的流程
  • 为什么要三次握手,两次握手可以吗
  • https 的建立连接过程
  • 状态码 301 和 302 的区别
  • select,epoll,和 poll 的区别
  • ET 和 LT 的区别
  • OSI 和 TCP/IP 协议之间的对应关系
  • ARP 协议的原理和过程
  • 滑动窗口协议的原理和过程
  • 流量控制和拥塞控制的区别
  • TIME_WAIT 的作用
  • TCP 和 UDP 的区别
  • TCP 如何保证可靠性
  • SYN Flood 攻击
  • 如何使用 udp 实现可靠性

数据库

  • redis 的主从复制怎么做的
  • redis 支持的数据类型
  • 什么是 redis 持久化
  • redis 有哪几种持久化方式,优缺点是什么
  • redis 有哪些架构模式
  • MySQL 中 myisam 与 innodb 的区别
  • innodb 引擎的 4 大特性

操作系统

  • 进程和线程的区别
  • 进程间的通信方式有哪些
  • 在一台内存为 2G 的机器上,使用 malloc 分配 20G 会发生什么,new 20G 呢
  • 什么是孤儿进程,僵尸进程,惊群效应
  • Ubuntu 开机过程中系统做了哪些事情
  • 堆和栈的区别
  • 乐观锁和悲观锁
  • 如何监控进程异常退出
  • 线程怎么将一个全局变量变成私有变量
  • 两个不同的进程同时使用一个端口号有没有问题
  • 虚拟内存的原理

算法

27

工作十年的程序员,未必能回答!~

展开全部 8 讨论