摘要:
一、基础算法 快速排序算法模板 #include <iostream> #include <algorithm> using namespace std; const int N = 100010; int n; int q[N]; void quick_sort(int q[], int l, i 阅读全文
摘要:
单一职责原则(SRP) 如何理解单一职责原则 单一职责原则:Single Responsibility Principle, 缩写SRP。 意思:一个类或模块只负责完成一个职责(或者功能)。 单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。 如何判断一个类的职责是否足够 阅读全文
摘要:
题目: 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键 阅读全文
摘要:
排序算法 排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 排序方式 稳定性 冒泡排序 O(n^2) O(n) O(n^2) O(1) In-place 稳定 选择排序 O(n^2) O(n^2) O(n^2) O(1) In-place 不稳定 插入排序 O(n^2) O(n) O(n^2 阅读全文
摘要:
一、单例模式 1、饿汉式 饿汉式的实现方式比较简单。在类加载的时候,instance 静态实例就已经创建并初始化好了,所以,instance 实例的创建过程是线程安全的。不过,这样的实现方式不支持延迟加载(在真正用到 IdGenerator 的时候,再创建实例) 如果初始化耗时长,那我们最好不要等到 阅读全文
摘要:
前置芝士 在讲解 TCP 三次握手和四次挥手之前,我们先来简单的讲解 TPC 的基础知识,这样更有助于我们后面的理解。 首先我们得知道什么是 TCP ? TCP 是面向连接的、可靠的、基于字节流的传输层通信协议,中文叫传输控制协议。下面简单的解释一下: 面向连接:一定是一对一才能连接,不能像 UDP 阅读全文
摘要:
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该 阅读全文
摘要:
前置芝士 在讲解 TCP 可靠传输之前,我们先搞清楚什么是 TCP 可靠传输? TCP 可靠传输就是保证接收方收到的字节流和发送方发出的字节流是完全一样的。 那为什么需要 TCP 的可靠传输呢? 由于网络层是没有可靠传输机制的,尽自己最大的努力进行交付。而传输层使用 TCP 实现可靠传输,TCP 保 阅读全文
摘要:
IP 协议的基本认知 IP(Internet Protocol)协议,中文叫网际协议 ,是位于网络层的一个协议。它用于屏蔽下层物理网络的差异,为上层提供统一的 IP 数据报。就像下面这样: IP 协议的特点:IP 协议提供无连接的、不可靠的、尽力的数据报投递服务: 无连接的投递服务:发送端可于任何时 阅读全文
摘要:
HTTPS 看这篇就够了 我们之前讲解过了 HTTP,如果面看过的建议先去看看 HTTP(传送门),我们知道 HTTP 有三大缺点:通信使用明文、不验证通信方的身份、无法证明报文的完整性。今天,我就来带你看看 HTTPS 相比 HTTP 有哪些优点,是如何解决这些问题的,话不多说,直接开干。 不安全 阅读全文