最小公倍数、最大公约数
本文介绍了最大公因数(GCD)与最小公倍数(LCM)的核心算法及关系。GCD的欧几里得算法基于gcd(a,b)=gcd(b,a mod b),通过反复取余直至余数为0求解;更相减损法利用移位优化偶数处理,奇数时相减,效率更高,复杂度O(logN)。LCM则通过公式lcm(a,b)=|a×b|/gcd(a,b)计算,依赖整数质分解定理(GCD取质因数最小指数,LCM取最大指数)。多整数LCM可递归求解为LCM(LCM(a₁,…,aₙ₋₁),aₙ)。
本文介绍了最大公因数(GCD)与最小公倍数(LCM)的核心算法及关系。GCD的欧几里得算法基于gcd(a,b)=gcd(b,a mod b),通过反复取余直至余数为0求解;更相减损法利用移位优化偶数处理,奇数时相减,效率更高,复杂度O(logN)。LCM则通过公式lcm(a,b)=|a×b|/gcd(a,b)计算,依赖整数质分解定理(GCD取质因数最小指数,LCM取最大指数)。多整数LCM可递归求解为LCM(LCM(a₁,…,aₙ₋₁),aₙ)。
ThreadLocal是线程局部变量,每个线程通过其get/set方法可访问独立初始化的变量副本,通常定义为类的私有静态字段。其实现依赖线程内部的ThreadLocalMap(哈希表结构),key为ThreadLocal实例(弱引用),value为实际数据(强引用),ThreadLocal实例本身不存储值。应用场景包括为线程绑定独立数据库连接、存储上下文信息等,避免使用ConcurrentHashMap带来的加锁开销。但需注意内存泄漏问题:线程池中线程不消亡时,若ThreadLocalMap的key被回收,value无法访问且无法解除引用,需在业务结束时显式调用clear()避免泄漏。
本文系统梳理了Redis、MySQL、Java并发、JVM及Spring等核心技术要点。Redis部分涵盖缓存穿透/击穿/雪崩解决方案、持久化策略、分布式锁及集群模式;MySQL聚焦索引优化、事务隔离级别及主从同步;Java并发详解锁机制(synchronized升级、ReentrantLock)、JMM模型及JUC工具类;JVM分析内存结构、GC算法(G1/ZGC)及调优参数;Spring核心为IoC/AOP思想与Bean生命周期管理。同时涉及构建工具Gradle、消息队列RabbitMQ设计要点,以及个人项目中幂等性、搜索优化等实践,为技术体系化提供全面参考。
广播信道需接入控制以确保有序传输,方法分静态划分(如频分、时分复用,局域网资源利用率低)和动态媒体接入控制。动态控制分随机接入(如CSMA/CD)和受控接入。CSMA/CD(载波监听多点接入/冲突检测)用于半双工通信,通过载波监听、多点接入和边发送边冲突检测避免碰撞,采用二进制指数退避算法计算重传退避时间,并规定最小帧长(64字节)防发送完才检测碰撞。以太网逻辑总线型,用CSMA/CD,集线器物理星型但逻辑仍总线,提供无差错接收但不保证可靠。MAC帧含14字节头部(源/目的MAC地址、类型字段)、4字节尾部(FCS校验),前导码同步时钟,数据部分MTU为1500字节,最小46字节。
数据链路层通过首尾添加标识符构成数据帧,并实现透明传输——确保任意比特组合数据正常传输。透明传输方法包括:字符填充法(用转义字符区分控制符号与数据)、零比特填充法(遇连续5个1后补0,恢复时删0)、违规编码法(利用曼切斯特编码的违规信号定界)。差错控制方面,奇偶校验法简单但无法检测偶数错误;CRC校验法用生成多项式模2除法得FCS,高概率检错;海明码通过校验码实现纠错,需满足2^r≥n+r+1,定位错误位并修正。
传输介质特性包括机械(接口形状尺寸等)、电气(电压速率等)、功能(电平意义)、过程(事件顺序)四大特性。编码方式有不归零制(同步问题)、归零制(效率低)、曼切斯特(自同步,效率50%)、反向非归零(冗余位同步)、差分曼切斯特(跳变判断)。调制有基本方式(FSK、ASK、PSK)及QAM(结合调频调相,星座图表示幅度相位),奈氏准则指出最大波特率=2W(防码间串扰),香农公式给出最大比特率=W·log₂(1+S/N)(含信噪比)。复用技术通过复用器/分用器实现,包括频分(不同频率)、时分(固定时序)及码分(正交向量集,动态分配资源)。
端口是16位整数的传输层规范,分三类:公认端口(如80、443用于HTTP/HTTPS)、注册端口(如MySQL的3306)、动态端口(自由使用)。UDP协议直接加8字节头部(含源/目的端口、长度、校验和)传输,不分段,校验和基于伪首部计算。可靠传输协议中,停止等待ARQ需等待ACK,信道利用率p=数据长度/(数据长度+RTT·带宽);连续ARQ(GBN)允许连续发送N个包,累计ACK,超时重传整个窗口;选择重传SR仅重传出错帧,接收窗口可大于1。TCP面向字节流,主动分段(MSS限制),首部含序号、确认号、标志位(如SYN、ACK)、窗口(流量控制),通过慢开始等算法拥塞控制,三次握手建立连接(确保双方各执行请求与确认)。
通信交换主要有三种形式:电路交换、报文交换和分组交换。电路交换通过物理连接建立专用线路,传输速率快但共享性差、无法差错控制且需提前建连;报文交换采用“存储转发”,无需连接、线路灵活,但长报文传输慢、开销大;分组交换将数据切割成分组,支持并行传输,共享性好、重传代价小,但首部开销大、可能乱序。交换结构包括存储器(串行)、总线(串行)和纵横开关(交叉点连接),现代路由器采用改良结构,配备独立缓冲区与交换矩阵,提升效率。
网络通信中,实体是具备功能的软硬件单元,对等实体通过协议(含语法、语义、同步三要素)实现数据交换。网络体系结构负责分层及协议定义,主要分三类:ISO/OSI七层模型(复杂冗余,少商业应用)、TCP/IP四层模型(广泛采用,合并上层)、五层模型(教学用,拆分物理与数据链路层)。服务为层的工作定义,SAP是层间逻辑接口,服务分面向连接(三阶段)和无连接。PDU为等层次间数据单位,SDU为层间数据单位。TCP/IP中,传输层分TCP(可靠、高开销)和UDP(简单、可能丢包)。
计算机网络由核心部分(路由器及链路)和边缘部分(终端机)构成,遵循“边缘智能,核心简单”原则。性能指标包括:速率(数据率,单位bps/kbps/Mbps等,进制为10³);带宽(网络最大理论速率);吞吐量(单位时间实际传输数据量,可能因拥塞低于带宽);时延(传输时间,含排队、处理、发送、传播时延,发送时延=数据长度/信道宽度,为用户感受最明显部分);时延带宽积(BDP=带宽×时延,表示网络中“在途”数据总量,用于衡量长距离传输需保持的数据量)。