正码、反码、补码
机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为0. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是 00000011 。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就是机器数。 真值 因为第一位是符号位,所以机器数的形式值就不等...
机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为0. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是 00000011 。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就是机器数。 真值 因为第一位是符号位,所以机器数的形式值就不等...
什么是字符集 在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放...
时常会有一个疑问,明明自己看过很多技术书籍、博客,为什么当真正聊起来的时候,却又发现自己好像什么都不记得了。今天我想通过批判性思维,好好的论证一下自己出现这个问题的原因。 为什么学习的技术点总是遗忘? 如果我问自己这个问题,我能想到以下几种原因: 在学习的时候,就没有理解透彻,一知半解。 学习之后,没有实践,理解程度停留在理论层面。 没有及时复习,时间长了就遗忘了...
问题描述 假设有一个列表查询页面,查询的数据是多个数据源的聚合,数据源由不同的微服务管理,如何实现分页查询? 解决方案 为了表述方便,把涉及到的微服务分为主微服务和辅微服务。提供主体数据的微服务称为主微服务,提供关联数据的微服务称为辅微服务。这里根据查询条件的不同又分为三种情况 查询条件字段在主微服务中 查询条件字段在主微服务中,则查询过程为:从数据库中根据条件查询出分页结果,将辅...
垃圾回收 (Garbage Collection,简称 GC) 是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器资源。GC 过程中无需程序员手动执行。GC 机制在现代很多编程语言都支持,GC 能力的性能与优劣也是不同语言之间对比度指标之一。 Golang 在 GC 的演进过程中也经历了很多次变革, Go V1.3 之前的标记-清除算法 Go V...
寻找一种易于理解的一致性算法(扩展版) 寻找一种易于理解的一致性算法(扩展版) 摘要 1 介绍 2 复制状态机 3 Paxos 算法的问题 4 为了可理解性的设计 5 Raft 一致性算法 5.1 Raft 基础 5.2 领导人选举 ...
定义 限流是指在单位时间内限制接口的请求数量。其主要作用有两个: 保护服务的处理能力:避免因流量洪峰导致系统超载或崩溃。 防范恶意调用:防止人为或恶意的频繁请求耗尽系统资源。 限流位置 客户端:在客户端或前端直接限制用户的请求频率。例如,用户提交表单时设置按钮的防重复点击,或通过前端代码限制调用频次。这样可以有效降低无意义的请求传递到后端。 ...
Kafka 介绍 Apache Kafka 是一个开源的分布式事件流处理平台,最初由 LinkedIn 开发,并在 2011 年开源,现由 Apache 软件基金会维护。Kafka 的设计目标是 高吞吐量、低延迟、可扩展、高可用性,适用于实时数据流处理和大规模数据集成。 Kafka相比于传统的消息中间件有三个角色: 消息系统:Kafka 是高性能的消息队列,单机吞吐量可到达百万级...
日志无处不在:系统的基础 日志结构在许多关键系统中起着基础性的作用: 关系数据库:数据库首先写入预写日志(WAL),以确保事务的原子性和持久性。即便数据库崩溃,所有表的数据也可以从 WAL 中重建。 文件系统:如 XFS 文件系统,先将文件元数据的更改写入日志,然后再写入文件本身,以保证一致性。 分布式系统:Raft、ZAB、Paxos 等状态机复制协议依赖日志,确保所有副...
RabbitMQ是目前非常热门的一款消息中间件,其凭借高可靠、易扩展、高可用及丰富的功能特性受到众多开发者的青睐,在互联网、金融传统行业中都在大量的使用。 消息中间件 什么是消息中间件 消息中间件,也称消息队列,是一种在分布式系统中用于消息通信、传输和处理的软件,它提供了异步通信的机制,解耦了系统中的不同服务或组件,使它们能够以松耦合的方式进行交互。 它一般有两种传递模式:点...
main: 具有无限生存期的主要分支,用于存放稳定的、可发布的代码。 dev: 作为主开发分支,所有的功能分支都会从这里拉取,并在开发完成后合并回这个分支。 feature: 每开始一个新功能都要从dev分支拉取一个新的功能分支。命名为 feature-*。完成后合并回 dev 分支。功能分支通常仅存在于开发人员存储库中,而不存在于origin 中。功能完成后,可以直接删除...
设计一个拥有上百万用户的系统是很有挑战性的,这将是一个不断优化、持续改进的过程。在本章中,我们先创建一个单用户的系统,然后逐渐将其扩展成可以服务上百万用户的系统。读完本文,你将掌握几个能帮助你破解系统设计面试难题的技巧。 单服务器配置 万里征途总是从第一步开始的,构建一个复杂系统也是如此。我们从简单的部分着手,先让所有的功能都在一个服务器上运行。图1-1展示了如何配置单台服务器,让一切都...
业务处于起步阶段时,流量非常小,无论是读请求还是写请求,直接操作数据库即可,但是随着业务量的增长,项目请求量越来越大,这时如果每次都从数据库中读数据,那肯定会有性能问题。 这个阶段通常的做法是,引入缓存来提高读性能。 我们常用的缓存方案一般是这样的: 写请求依旧只写数据库 读请求先读缓存,如果缓存不存在,则从数据库读取,并重建缓存 同时,写入缓存中的数据,都设置失效时间 ...
在当今高度并发的数据库环境中,有效的并发控制是至关重要的。MVCC是MySQL中被广泛采用的并发控制机制,它通过版本管理来实现事务的隔离性,允许读写操作同时进行,提高数据库的并发性能和响应能力。 MVCC 介绍 MVCC,全称 Multi-Version Concurrency Control,即多版本并发控制 MVCC的目的主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,...
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现”API First”的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。 协议 API与用户的通信协议,总是使用HTTPs协议。 域...