摘要: 哈希表是最常用的数据结构之一,对于其用法,大家都非常熟悉,这里详细探讨一下其原理。哈希表的底层实际上是基于数组来存储的,当插入键值对时,并不是直接插入该数组中,而是通过对键进行Hash运算得到Hash值,然后和数组容量取模,得到在数组中的位置后再插入。取值时,先对指定的键求Hash值,再和容量取模得 阅读全文
posted @ 2019-08-03 17:12 让我思考一下 阅读(1409) 评论(0) 推荐(0) 编辑
摘要: 谈到哈希算法,每个程序员都不陌生,但是谈到比特币共识算法PoW,如果没有接触过的技术人员可能觉得应该会很复杂,毕竟全球的比特币节点数量如此庞大,达成共识的算法应该不会很简单。但其实如果你已掌握哈希算法,几分钟内你就能理解PoW。为了更好的说明PoW的原理,我们再把哈希算法及相关概念描述一下: 哈希函 阅读全文
posted @ 2019-08-02 11:02 让我思考一下 阅读(2727) 评论(0) 推荐(0) 编辑
摘要: 静态绑定与动态绑定 讨论静态绑定与动态绑定,首先需要理解的是绑定,何为绑定?函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定。 理解了绑定后再理解静态与动态。 静态绑定:指在程序编译过程中,把函数调用与响应调用所需的代码结合的过程,称为静态绑定。发生在编译期。 动态绑定:指在执 阅读全文
posted @ 2019-08-02 10:47 让我思考一下 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 理解与掌握TCP的三次握手与四次分手是每一个程序开发人员的基本功,让我们先从TCP首部开始吧。 TCP首部 TCP工作在传输层,提供应用程序到应用程序之间的可靠传输。学习TCP协议,首先从TCP协议头部开始: TCP协议头部每个字段说明一下如下: Source Port和Destination Po 阅读全文
posted @ 2019-08-02 10:30 让我思考一下 阅读(540) 评论(0) 推荐(0) 编辑
摘要: `RST`表示连接重置,用于关闭那些已经没有必要继续存在的连接。一般情况下表示异常关闭连接,区别与四次分手正常关闭连接。 产生 的三个条件是: 1. 目的地为某端口的 到达,然而在该端口上并没有正在监听的服务器; 2. TCP想取消一个已有连接; 3. TCP接收到一个根本不存在的连接上的分节。 下 阅读全文
posted @ 2019-08-02 09:34 让我思考一下 阅读(6121) 评论(0) 推荐(4) 编辑
摘要: 在工作开发过程中,我们经常会使用到ping和traceroute。在这里,我们将细述其工作原理,让你在会用的基础之上理解其内部工作过程。 ICMP应用实例——Ping Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。Ping 的原理是通过向目的主机发送 ICMP Echo 阅读全文
posted @ 2019-08-01 18:10 让我思考一下 阅读(3078) 评论(0) 推荐(1) 编辑
摘要: ARP地址解析协议(IP地址 MAC地址) 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机与主机之间的通信在物理上实质是网卡与网卡之间的通信,而网卡只认识MAC地址,所以要想实现主机与主机之间的通信,需要知道对 阅读全文
posted @ 2019-08-01 09:38 让我思考一下 阅读(1172) 评论(0) 推荐(0) 编辑
摘要: 在实际编程中,可能会出现泛型引用这种情况,我们会编写如下的代码: 会产生编译错误: error[E0309]: the parameter type may not live long enough src/main.rs:16:5 | 15 | struct Inner { | help: con 阅读全文
posted @ 2019-08-01 09:28 让我思考一下 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 在linux下开发时,如果程序突然崩溃了,也没有任何日志。这时可以查看core文件。从core文件中分析原因,通过gdb看出程序挂在哪里,分析前后的变量,找出问题的原因。 Core Dump 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做C 阅读全文
posted @ 2019-07-31 18:16 让我思考一下 阅读(32360) 评论(0) 推荐(4) 编辑
摘要: 写时复制(Copy on Write)技术是一种程序中的优化策略,多应用于读多写少的场景。主要思想是创建对象的时候不立即进行复制,而是先引用(借用)原有对象进行大量的读操作,只有进行到少量的写操作的时候,才进行复制操作,将原有对象复制后再写入。这样的好处是在读多写少的场景下,减少了复制操作,提高了性 阅读全文
posted @ 2019-07-30 15:38 让我思考一下 阅读(1657) 评论(0) 推荐(0) 编辑