网易-C++工程师面经汇总
6298
2020.10.18
2020.11.07
发布于 未知归属地

325c83a25b192c8adc32ff55087ad3fd.jpg

语言

  • 写一个常量指针和指针常量
  • 怎么实现单例模式
  • 单例模式和观察者模式的应用场景
  • reactor 模式
  • MVC
  • 了解其他开源的 mallic 方式吗
  • C++ 14 新特性
  • C++ 20 新特性
  • 什么是右值引用
  • 什么是智能指针,有哪些,以及实现原理
  • 什么是虚函数
  • 怎么定义虚函数
  • 什么是虚函数表
  • 什么是多态
  • 指针和引用的区别
  • 指针的大小
  • 强制类型转换
  • 如何理解 C++ 的面向对象编程
  • 内存对齐的原则
  • 怎么实现模板
  • 指针和 const 的用法
  • 内联函数和宏定义的区别
  • extern C 的作用
  • C 和 C++ 的区别
  • 模板特化的概念,为什么特化
  • explicit 干什么用的
  • new与malloc的 区别,delet 和 free 的区别
  • vector 底层如何实现的,如果内存不够执行什么操作
  • sizeof(1==1) 在 C 和 C++ 中分别是什么结果

计算机网络

  • 长连接和短连接
  • 怎么在服务端实现长连接
  • http 和 https 区别,https 加密方式
  • http 头部包含哪些,keep-alive 和非 keep-alive 区别,对服务器性能有影响吗
  • 怎么知道 http 的报文长度
  • 如果你访问一个网站很慢,怎么排查和解决
  • 域名和 ip 的关系,一个 ip 可以对应多个域名吗
  • 为什么 fidder,charls 能抓到你的包,过程是什么
  • tcp 三次握手和四次挥手
  • TIME_WAIT状态会导致什么问题,怎么解决
  • tcp 如何保证可靠传输
  • ping ip 的过程
  • 拥塞控制和流量控制
  • tcp 和 udp 的区别
  • tcp 粘包问题
  • tcp 报文包含哪些信息
  • 如果不想让一个人上网,除了MAC地址进行限制之外还能怎么做
  • 私网地址和公网地址之间进行转换:同一个局域网内的两个私网地址,经过转换之后外面看到的一样吗
  • 对称加密和非对称加密的区别
  • epoll水平触发和边沿触发,底层原理

数据结构

  • 跳表的实现原理
  • 哈希表的具体实现,哈希函数和哈希冲突等
  • 字典树的实现原理
  • 红黑树的定义和解释
  • 二叉树有哪几种遍历方式
  • map 与 unorder_map 的区别
  • vector 和普通数组的区别

数据库

  • MySQL、MongoDB 区别以及适用场景
  • MySQL 有哪些存储引擎以及它们的区别和适用场景
  • Redis 有哪些对象,什么情况用什么对象
  • Redis 中的跳跃表
  • Redis 和关系型数据库比有什么特点
  • Redis 中是怎么避免突然断电等数据丢失的问题的
  • 数据库的事务特点
  • 数据库的隔离级别
  • 分表和分区
  • 假如查询的字段不是你分区的字段,如何提高效率
  • 数据放在内存中的数据库有什么隐患
    bin

操作系统

  • linux 内核原理了解哪些
  • Linux 文件系统
  • 哪些方法可以读取文件内容
  • 共享内存的实现原理
  • 进程怎么进行管理
  • 进程间的通讯方式
  • 进程和线程的区别
  • 系统平均负载如何计算
  • read 函数详细调用过程
  • 怎么通过 inode 节点的文件偏移量知道读取哪个页
  • 当页缓存未命中时会发生什么
  • 怎么样知道该页的磁盘地址
  • 如何实现内存池
  • 如何检测出现了内存碎片,如何解决
  • 如何检测内存泄漏
  • 实现多线程有哪些方法
  • 多线程的缺点
  • 互斥锁和自旋锁的区别和优点
  • 死锁如何产生
  • 堆和栈的区别和优点
  • 有哪些调度算法
  • 内存溢出有那些因素
  • 异常机制
  • top 怎么查看线程
  • Linux下的/var 目录有什么用
  • 什么是并行计算

算法

评论 (2)