1、计算机网络
(1)简述从输入网址到浏览器显示的过程?
- 1、输入网址。
- 2、DNS解析获取域名对应的IP地址
- 3、建立TCP连接
- 4、web浏览器向web服务器发送HTTP请求
- 5、服务器的永久重定向响应
- 6、web服务器做出应答
- 7、浏览器显示HTML
- 8、web服务器关闭TCP连接
(2)TCP 为什么是三次握手四次挥手?
参考答案链接1
参考答案链接2
(3)TCP 如何保障数据包有效?
参考答案
(4)HTTPS 和 HTTP 的区别?
- 1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
- 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
- 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- 4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2、操作系统
(1)进程与线程的区别?
- 1、不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的。
- 2、在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换低。
(2)堆与栈的区别?
- 1、申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;
- 2、申请大小的不同。栈获得的空间较小,而堆获得的空间较大;
- 3、申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;
- 4、存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排;
- 5、底层不同。栈是连续的空间,而堆是不连续的空间。
(3)内核态和用户态的划分与切换?
参考链接
(4)虚拟地址怎么映射到物理地址?
参考链接
(5)简述 IO 多路复用?
参考链接
(6)简述进程通信的各种方法?
参考链接
3、数据库
(1)简述关系型数据库与非关系形数据库的区别与联系?
-
1、数据存储方式不同。
关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表bai格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。 -
2、扩展方式不同。
SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。
要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。
因为数据存储在关系表中,操作的性能瓶颈可能涉及很多个表,这都需要通过提高计算机性能来客服。虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限。而NoSQL数据库是横向扩展的。而非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。 -
3、对事务性的支持不同。
如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。
(2)简述数据库的事务?
参考链接
4、C++
(1)C++ 多态及其实现?
参考链接
(2)C++11 的新特性?
参考链接
(3)右值引用?
参考链接