C++
简述 C++ 中智能指针的特点,简述 new 与 malloc 的区别
const, static 关键字有什么区别
C++ 的多态是如何实现的
简述 C++ 右值引用与转移语义
- 在语法上,左值的声明符号为&,为了和左值区分,右值的声明符号为&&。
- 在速度上,转移语义是和拷贝语义相对的,可以类比文件的剪切与拷贝,当我们将文件从一个目录拷贝到另一个目录时,速度比剪切慢很多,通过转移语义,临时对象中的资源能够转移其它的对象里。
- 在析构函数的运行上,有时转移构造和转移复制操作符代替拷贝构造和拷贝复制操作符,就能比拷贝的方式省去创建临时对象,和销毁临时对象的过程。
- 可以使用std::move(),将左值引用转化为右值引用,这样就可以调用为右值引用准备的函数,在swap函数中如果使用std::move(),可以省去三次不必要的拷贝操作
- C++11的右值引用和转移语义
C++ 中解释类模板和模板类的区别
C++ 中哪些函数不能被声明为虚函数
C++ 中虚函数与纯虚函数的区别
构造函数和析构函数可以被声明为虚函数吗
简述 C++ 中内存对齐的使用场景
什么是内存泄漏,怎么确定内存泄漏
STL 中 vector 与 list 具体是怎么实现的,常见操作的时间复杂度是多少
C++ 11 有什么新特性
操作系统
进程间有哪些通信方式
进程和线程之间有什么区别
简述操作系统如何进行内存管理
操作系统中,虚拟地址与物理地址之间如何映射
简述操作系统中的缺页中断
什么时候会由用户态陷入内核态
简述自旋锁与互斥锁的使用场景
线程间有哪些通信方式
Linux 下如何查看端口被哪个进程占用
两个线程交替打印一个共享变量
Linux 常见的进程调度算法
什么情况下,进程会进行切换
Linux 中虚拟内存和物理内存有什么区别,有什么优点
简述 traceroute 命令的原理
计算机网络
从输入 URL 到展现页面的全过程
TCP 怎么保证可靠传输
TCP 中常见的拥塞控制算法有哪些
HTTP 与 HTTPS 有哪些区别
简述常见的 HTTP 状态码的含义(301,304,401,403)
简述 TCP 三次握手以及四次挥手的流程,为什么需要三次握手以及四次挥手
简述 HTTPS 的加密与认证过程
DNS 查询服务器的基本流程是什么?DNS 劫持是什么?
TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别
面试题:聊聊TCP的粘包、拆包以及解决方案
简述 HTTP 1.0,1.1,2.0 的主要区别
简述对称与非对称加密的概念
简述 OSI 七层模型
HTTP 的方法有哪些
简述 TCP 滑动窗口以及重传机制
Cookie 和 Session 的关系和区别是什么
TCP 挥手时出现大量 CLOSE_WAIT 或 TIME_WAIT 怎么解决
HTTP 中 GET 和 POST 区别
简述 iPv4 和 iPv6 的区别