计算机类知识点
一、计算机基础
计算机硬件
计算机五大组成部件(必考)
一台完整计算机由5部分组成:
- 运算器:算术运算、逻辑运算
- 控制器:指挥、控制各部件协调工作
- 存储器:存放数据和程序
- 输入设备:向计算机输入信息
- 输出设备:从计算机输出信息
口诀:运、控、存、输、入、出
CPU(中央处理器)
- CPU = 运算器 + 控制器
- 功能:执行指令、处理数据
- 主要指标:
- 主频:速度快慢(GHz)
- 字长:一次处理二进制位数(32位/64位)
- 寄存器:CPU内部高速存储单元,速度最快
- 核心数:双核、四核,核心越多,并行处理能力越强,多任务更快
- 线程数:代表同时处理任务的数量,如 4 核 8 线程,多线程能提高并发效率
- 缓存:减少 CPU 访问内存的速度瓶颈
缓存越大,CPU 运行越流畅
存储器(重点区分)
内存储器(内存/主存)
- RAM 随机存储器:可读可写,断电数据丢失
- SRAM:静态、不用刷新、速度快、贵、容量小 → 用作 Cache
- DRAM:动态、需刷新、速度一般、便宜、容量大 → 用作 内存
- ROM 只读存储器:只能读不能写,断电不丢失,存BIOS等
- Cache 高速缓存:介于CPU和内存之间,提速用
- 速度排序:寄存器 > Cache > 内存 > 外存
外存储器(外存/辅存)
- 长期保存数据,断电不丢失
- 常见:硬盘、U盘、光盘、固态硬盘(SSD)、移动硬盘
存储单位换算(必考)
- 1 B(字节)= 8 bit(位)
- 1 KB = 1024 B
- 1 MB = 1024 KB
- 1 GB = 1024 MB
- 1 TB = 1024 GB
注意:考试一律按1024进制算。
输入设备
向电脑“送信息”的设备:
键盘、鼠标、扫描仪、摄像头、麦克风、手写板、条码枪
输出设备
电脑“往外发信息”的设备:
显示器、打印机、投影仪、音箱、绘图仪
既是输入又是输出的设备
- 触摸屏
- U盘、移动硬盘、固态硬盘
- 网卡
总线(Bus)
计算机内部传输数据的通道,分三类:
- 数据总线:传数据
- 地址总线:传地址
- 控制总线:传控制信号
主板
| 组成部分 | 作用 | 关键考点 |
|---|---|---|
| CPU插槽 | 安装CPU | 必须与CPU型号匹配,不能混用 |
| 芯片组 | 控制各部件通信 | 现代主板已无北桥,集成进CPU |
| 内存插槽 | 安装内存条 | DDR3/4/5不兼容 |
| 扩展槽(PCIe) | 安装显卡、网卡等 | 显卡用PCIe x16 |
| BIOS / UEFI | 启动系统、硬件初始化 | UEFI是升级版 |
| CMOS电池 | 保存BIOS设置 | 没电→时间重置 |
| 电源接口 | 给主板和CPU供电 | 24针+8针 |
| 硬盘接口 | 连接硬盘 | SATA、M.2(NVMe更快) |
| USB接口 | 外接设备 | USB3.0速度更快 |
| 显示接口 | 视频输出 | HDMI / DP / VGA |
| 网络接口 | 连接网络 | RJ45网口 |
| 音频接口 | 声音输入输出 | 耳机、麦克风 |
| 芯片 | 主要功能 | 连接设备 |
|---|---|---|
| 北桥(North Bridge) | 负责高速设备通信 | CPU、内存、显卡 |
| 南桥(South Bridge) | 负责低速设备通信 | USB、硬盘、声卡;PCH / FCH |
指令系统
RISC 与 CISC
RISC:少而快,定长,寄存器多,便于流水。ARM 架构→ 手机、平板、智能设备
CISC:多而全,变长,功能强,硬件复杂,Intel x86 系列→电脑、PC、服务器
常见硬件性能指标★
- 字长:CPU一次处理数据位数,越长越强
- 主频:CPU时钟频率,越高越快
- 存取周期:存储器读写速度
- 分辨率:显示器清晰度(如1920×1080)
CPU 性能指标
| 指标 | 含义 | 单位 | 指标越大/越小代表什么 | 常考点 |
|---|---|---|---|---|
| 主频(Clock Frequency) | CPU 每秒钟的时钟周期数 | GHz / MHz | 一般越大越快,但不是唯一标准 | 常考 |
| 核心数(Cores) | CPU 中独立处理核心数量 | 个 | 越多并行能力越强 | 高频 |
| 线程数(Threads) | 可同时处理的线程数量 | 个 | 越多多任务更强 | 高频 |
| 字长(Word Length) | CPU 一次能处理的数据位数 | 位(32位/64位) | 越大处理数据能力越强 | 高频 |
| 缓存(Cache) | CPU 内部高速缓存 | KB / MB / GB | 越大通常越快 | 高频 |
| IPC | 每个时钟周期可执行指令数 | 指令/周期 | 越大越强 | 进阶 |
| 指令集 | CPU 支持的指令类型 | - | 指令集越丰富,功能越强 | 常识题 |
| 功耗(TDP) | 设计热功耗 | W | 越大通常性能强,但发热高 | 常见 |
| 制程工艺 | 芯片晶体管制造精度 | nm | 越小通常功耗更低、集成度更高 | 高频 |
| 睿频/加速频率 | 短时间高负载提升频率 | GHz | 越高突发性能越好 | 高频 |
内存(RAM)性能指标
| 指标 | 含义 | 单位 | 越大/越小代表什么 | 常考点 |
|---|---|---|---|---|
| 容量 | 内存能存放的数据量 | GB | 越大能同时运行更多程序 | 高频 |
| 频率 | 内存工作频率 | MHz | 越高理论速度越快 | 高频 |
| 带宽 | 单位时间可传输数据量 | GB/s | 越大数据交换越快 | 高频 |
| 时延(Latency) | 访问数据所需时间 | ns / CL | 越小越快 | 高频 |
| 通道数 | 单/双/四通道 | 个 | 通道越多,带宽越大 | 高频 |
| 代际标准 | DDR3/DDR4/DDR5 | - | 新代通常更快更省电 | 高频 |
| ECC | 是否具备纠错能力 | - | 有 ECC 更可靠 | 服务器常考 |
外存 / 硬盘性能指标(HDD / SSD)
硬盘总体性能指标表
| 指标 | 含义 | 单位 | 适用对象 | 越大/越小说明 |
|---|---|---|---|---|
| 容量 | 可存储数据总量 | GB / TB | HDD / SSD | 越大越能存 |
| 顺序读写速度 | 连续读写大文件速度 | MB/s / GB/s | HDD / SSD | 越大越快 |
| 随机读写速度 | 小文件零散访问速度 | IOPS / MB/s | SSD 更重要 | 越大越快 |
| 访问延迟 | 发起请求到开始读写的时间 | ms / μs | HDD / SSD | 越小越快 |
| 转速 | 机械盘盘片旋转速度 | RPM | HDD | 越高越快 |
| 缓存 | 硬盘内部缓冲区 | MB | HDD / SSD | 越大越有利 |
| 寿命/写入量 | SSD 可承受写入总量 | TBW / DWPD | SSD | 越大寿命越长 |
HDD(机械硬盘)专属指标
| 指标 | 含义 | 常见值 | 说明 |
|---|---|---|---|
| 转速 | 盘片每分钟转动圈数 | 5400 / 7200 / 10000 RPM | 越高越快 |
| 平均寻道时间 | 磁头移动到目标磁道时间 | ms | 越小越快 |
| 旋转延迟 | 等待扇区转到磁头下方时间 | ms | 越小越快 |
| 平均访问时间 | 寻道时间 + 旋转延迟 | ms | 越小越快 |
SSD(固态硬盘)专属指标
| 指标 | 含义 | 说明 |
|---|---|---|
| 接口类型 | SATA / NVMe / PCIe | 决定速度上限 |
| 闪存类型 | SLC / MLC / TLC / QLC | 影响寿命、速度、价格 |
| IOPS | 每秒输入输出操作次数 | 小文件性能核心指标 |
| TBW | 总写入字节数 | 衡量寿命 |
| 控制器性能 | SSD 主控能力 | 影响稳定性和速度 |
主板与总线性能指标
主板核心性能指标
| 指标 | 含义 | 影响 |
|---|---|---|
| 芯片组 | 主板核心控制芯片 | 决定支持哪些 CPU、内存、接口 |
| 总线带宽 | 主板各部件间传输能力 | 影响整体协同速度 |
| 插槽数量 | 内存槽、PCIe 槽等数量 | 影响扩展能力 |
| 供电能力 | VRM 供电设计 | 影响稳定性和高性能 CPU 发挥 |
| 接口规格 | USB、SATA、M.2、PCIe 等 | 影响扩展和速度 |
总线性能指标(经典考点)
| 指标 | 含义 | 单位 | 趋势 |
|---|---|---|---|
| 总线宽度 | 一次传输的数据位数 | bit | 越大越好 |
| 总线频率 | 每秒传输节拍数 | MHz | 越高越好 |
| 总线带宽 | 单位时间传输数据总量 | MB/s、GB/s | 越大越好 |
| 传输方式 | 串行 / 并行 | - | 影响效率 |
| 协议标准 | PCIe / USB / SATA 等 | - | 影响速度和兼容性 |
显卡(GPU)性能指标
| 指标 | 含义 | 单位 | 越大/越小说明 |
|---|---|---|---|
| GPU 核心频率 | 显卡核心运行频率 | MHz / GHz | 越高通常越强 |
| 流处理器/CUDA 核心 | 并行计算单元数量 | 个 | 越多并行能力越强 |
| 显存容量 | 图形数据缓存空间 | GB | 越大更适合高分辨率/大型模型 |
| 显存位宽 | 显存总线宽度 | bit | 越大带宽更高 |
| 显存频率 | 显存工作速度 | MHz | 越高越快 |
| 显存带宽 | 显卡与显存数据交换能力 | GB/s | 越大越强 |
| 算力(TFLOPS) | 浮点运算能力 | TFLOPS | 越大越强 |
| 光追/AI 单元 | 专用加速单元 | - | 影响特定场景性能 |
显示器性能指标
| 指标 | 含义 | 单位 | 趋势 |
|---|---|---|---|
| 分辨率 | 屏幕像素总量 | 如 1920×1080 | 越高越清晰 |
| 尺寸 | 对角线长度 | 英寸 | 影响显示面积 |
| 刷新率 | 每秒刷新画面次数 | Hz | 越高越流畅 |
| 响应时间 | 像素切换所需时间 | ms | 越小越好 |
| 色域 | 可显示颜色范围 | % sRGB / DCI-P3 | 越大色彩更丰富 |
| 亮度 | 屏幕发光强度 | nit | 越高越亮 |
| 对比度 | 最亮和最暗对比能力 | 比值 | 越大层次更强 |
| 面板类型 | IPS / VA / TN / OLED | - | 影响色彩和响应 |
网络硬件性能指标
| 指标 | 含义 | 单位 | 趋势 |
|---|---|---|---|
| 带宽(Bandwidth) | 理论最大传输能力 | bps / Mbps / Gbps | 越大越好 |
| 吞吐量(Throughput) | 实际有效传输能力 | bps / Mbps / Gbps | 越大越好 |
| 时延(Latency) | 数据传输耗时 | ms | 越小越好 |
| 抖动(Jitter) | 时延波动程度 | ms | 越小越稳定 |
| 丢包率 | 数据包丢失比例 | % | 越小越好 |
| 端口速率 | 网口支持速度 | Mbps / Gbps | 越大越强 |
| 背板带宽 | 交换机内部总交换能力 | Gbps / Tbps | 越大越强 |
| 包转发率 | 每秒可处理数据包数 | pps / Mpps | 越大越强 |
服务器/整机综合性能指标
| 指标 | 含义 | 趋势 | 常考程度 |
|---|---|---|---|
| 吞吐量(Throughput) | 单位时间完成的任务数 | 越大越好 | ★★★★★ |
| 响应时间(Response Time) | 完成一次请求所需时间 | 越小越好 | ★★★★★ |
| 周转时间 | 作业从提交到完成的总时间 | 越小越好 | ★★★★ |
| 利用率 | CPU/设备实际工作时间占比 | 越高越好 | ★★★★★ |
| 可靠性 | 系统持续正确运行能力 | 越高越好 | ★★★★★ |
| 可维护性 | 故障后恢复和维护难度 | 越高越好 | ★★★★ |
| 可扩展性 | 是否容易升级扩容 | 越高越好 | ★★★★ |
| 兼容性 | 与其他设备/系统配合能力 | 越高越好 | ★★★ |
| 稳定性 | 长时间运行是否容易故障 | 越高越好 | ★★★★★ |
原码、反码、补码
| 项目 | 原码 | 反码 | 补码 |
|---|---|---|---|
| 定义 | 最高位为符号位,其余为数值本身 | 正数不变,负数=原码除符号位外取反 | 正数不变,负数=反码+1 |
| 符号位 | 0表示正,1表示负 | 同原码 | 同原码 |
| 正数表示 | 与原码相同 | 与原码相同 | 与原码相同 |
| 负数表示 | 符号位1 + 数值绝对值 | 符号位不变,其余位取反 | 反码 + 1 |
| 0的表示 | +0 和 -0 两种 | +0 和 -0 两种 | 只有一个0 |
| 运算复杂度 | 高(需判断符号) | 较高 | 低(统一加法) |
| 是否用于计算机运算 | ❌ 很少使用 | ❌ 很少使用 | ✅ 广泛使用 |
打印机
| 类型 | 工作原理 | 优点 | 缺点 | 典型应用 |
|---|---|---|---|---|
| 针式打印机 | 通过针头击打色带成像 | 可打印多联单、成本低 | 噪音大、速度慢 | 发票、票据 |
| 喷墨打印机 | 喷嘴喷射墨水成像 | 色彩好、价格低 | 墨水易干、速度较慢 | 家用、照片 |
| 激光打印机 | 激光成像 + 碳粉吸附 | 速度快、质量高 | 成本较高 | 办公、批量打印 |
| 热敏打印机 | 加热显色纸成像 | 无需墨水、安静 | 保存时间短 | 小票、收据 |
极简记忆版
- 五大部件:运算器、控制器、存储器、输入、输出
- CPU = 运算器 + 控制器
- 内存:断电丢失;外存:长期保存
- 单位:1KB=1024B,1MB=1024KB…
- 输入:键盘鼠标;输出:显示器打印机;两用:U盘触摸屏
计算机软件
计算机软件系统总表
| 模块 | 内容 | 说明 | 高频考点 |
|---|---|---|---|
| 软件系统定义 | 计算机软件系统是指计算机运行所需的程序、数据及相关文档的总称 | 软件是计算机系统的重要组成部分,与硬件共同构成完整计算机系统 | 软件系统 = 系统软件 + 应用软件 |
| 软件作用 | 指挥和控制计算机硬件完成各种任务 | 没有软件,硬件无法发挥作用 | 软件是计算机的“灵魂” |
| 软件分类 | 系统软件、应用软件 | 最常考的软件分类方式 | 选择题高频 |
软件系统分类总表
| 分类 | 定义 | 作用 | 举例 | 高频考点 |
|---|---|---|---|---|
| 系统软件 | 管理、控制和维护计算机资源的软件 | 为计算机运行提供基础环境 | Windows、Linux、编译程序、驱动程序、数据库管理系统 | 管理计算机本身 |
| 应用软件 | 为解决用户具体问题而开发的软件 | 帮助用户完成特定任务 | Word、Excel、微信、浏览器、Photoshop | 面向用户需求 |
常见系统软件分类表
| 系统软件类别 | 定义 | 主要功能 | 常见例子 | 高频考点 |
|---|---|---|---|---|
| 操作系统 | 管理和控制计算机硬件与软件资源的软件 | 管理 CPU、内存、文件、设备等 | Windows、Linux、macOS、Android、iOS | 最重要的系统软件 |
| 语言处理程序 | 把高级语言或汇编语言转换成机器语言的软件 | 让程序能被计算机执行 | 编译程序、解释程序、汇编程序 | 编译器/解释器区别 |
| 数据库管理系统(DBMS) | 管理数据库的软件 | 数据存储、查询、修改、删除 | MySQL、Oracle、SQL Server | 常考“属于系统软件” |
| 设备驱动程序 | 连接操作系统与硬件设备的软件 | 让系统识别并控制硬件 | 打印机驱动、显卡驱动、网卡驱动 | “驱动程序是桥梁” |
| 工具软件 | 为维护和管理系统而开发的软件 | 辅助系统运行和优化 | 杀毒软件、压缩软件、备份软件 | 有时归为系统软件 |
操作系统
操作系统是管理和控制计算机硬件与软件资源、组织计算机工作并为用户和应用程序提供服务的系统软件,是计算机系统中最重要的系统软件。
操作系统功能总表
| 功能 | 主要内容 | 通俗理解 |
|---|---|---|
| 处理机管理 | 管理 CPU 的分配和调度 | 谁先用 CPU |
| 存储管理 | 管理内存分配、回收、保护 | 谁占多少内存 |
| 文件管理 | 管理文件和目录 | 文件怎么存、怎么找 |
| 设备管理 | 管理输入输出设备 | 键盘、打印机、硬盘怎么用 |
| 用户接口管理 | 提供人与计算机交互方式 | 命令行 / 图形界面 |
| 网络与安全管理 | 网络通信、权限控制、安全保护 | 谁能访问、怎么联网 |
操作系统的特征
| 特征 | 含义 | 例子 |
|---|---|---|
| 并发性 | 多个程序在一段时间内同时运行 | 一边听歌一边写文档 |
| 共享性 | 多个程序共同使用资源 | 多个程序共享 CPU |
| 虚拟性 | 一个物理资源变成多个逻辑资源 | 一个 CPU 看起来可同时执行多个任务 |
| 异步性 | 程序执行速度和顺序不固定 | 某程序因等待 I/O 而暂停 |
进程与线程的区别
进程是资源分配的基本单位,线程是 CPU 调度的基本单位
| 对比项 | 进程 | 线程 |
|---|---|---|
| 定义 | 程序的一次执行过程 | 进程中的一个执行单元 |
| 资源分配 | 系统分配资源的基本单位 | CPU 调度的基本单位 |
| 是否独立 | 相对独立 | 依附于进程存在 |
| 开销 | 较大 | 较小 |
| 通信 | 较复杂 | 较容易 |
文件管理系统
| 文件系统 | 全称 | 主要使用平台 | 主要特点 | 优点 | 缺点 | 典型应用 |
|---|---|---|---|---|---|---|
| FAT32 | File Allocation Table 32 | Windows / Linux / macOS | 使用 32 位文件分配表 | 兼容性非常强,跨平台好 | 单文件最大 4GB,安全性差 | U盘、SD卡、车机、电视 |
| exFAT | Extended File Allocation Table | Windows / macOS / Linux(支持较新) | FAT32 的扩展版 | 支持大文件、大分区,兼容性好 | 权限控制和日志功能较弱 | 大容量U盘、SDXC卡、移动硬盘 |
| NTFS | New Technology File System | Windows | Windows 主流文件系统 | 支持权限、压缩、加密、日志、超大文件 | 与部分设备兼容性一般 | Windows 系统盘、机械盘、SSD |
| ReFS | Resilient File System | Windows Server / 部分高端Windows | 面向高可靠性和大规模存储 | 抗损坏能力强,适合大数据存储 | 普通用户场景少,兼容性不如 NTFS | 服务器、存储池 |
| ext4 | Fourth Extended File System | Linux | 当前 Linux 主流之一 | 支持大文件、性能好、稳定 | 某些高级特性不如新型文件系统 | Ubuntu、CentOS 等 |
| XFS | X File System | Linux / Unix | 高性能 64 位日志文件系统 | 适合大文件、高并发、高吞吐 | 小文件场景不一定最优 | 服务器、大数据、数据库 |
| Btrfs | B-tree File System | Linux | 现代 Linux 文件系统 | 支持快照、校验、子卷、压缩 | 复杂度高,部分场景成熟度争议 | Linux 高级存储管理 |
| JFS | Journaled File System | AIX / Linux | IBM 开发的日志文件系统 | 占用资源低,性能稳定 | 使用范围较小 | IBM 系统、部分 Linux |
| HFS+ | Hierarchical File System Plus | 老版本 macOS | 苹果旧版文件系统 | 支持较大文件、较稳定 | 逐渐被 APFS 取代 | 老款 Mac |
| APFS | Apple File System | macOS / iOS / iPadOS | 苹果现代文件系统 | 支持快照、加密、SSD 优化 | 与非苹果平台兼容性差 | Mac、iPhone、iPad |
| UFS | Unix File System | Unix / BSD | 经典 Unix 文件系统 | 稳定、成熟 | 现代特性较少 | BSD、Unix |
| ZFS | Zettabyte File System | Solaris / Linux / BSD | 高级文件系统与卷管理结合 | 超强数据完整性、快照、RAID、压缩 | 占资源较多,学习成本高 | NAS、企业存储、服务器 |
| ISO 9660 | 光盘文件系统标准 | CD-ROM | 光盘专用格式 | 通用性强 | 读写能力弱、容量有限 | 安装光盘、系统镜像 |
| UDF | Universal Disk Format | DVD / 蓝光 / 光盘 | 新一代光盘文件系统 | 支持大文件和可擦写光盘 | 主要限于光盘介质 | DVD、蓝光盘 |
简记
| 模块 | 核心内容 |
|---|---|
| 操作系统定义 | 管理硬件和软件资源的系统软件 |
| 作用 | 桥梁、管理者、服务提供者 |
| 五大功能 | CPU 管理、内存管理、文件管理、设备管理、用户接口 |
| 四大特征 | 并发、共享、虚拟、异步 |
| 常见分类 | 单/多用户,单/多任务,批处理,分时,实时 |
| 核心组成 | 内核、文件系统、驱动程序、界面 |
| 进程 | 程序的一次执行,是资源分配基本单位 |
| 线程 | 进程中的执行单元,是 CPU 调度基本单位 |
| 进程状态 | 就绪、运行、阻塞 |
| 死锁 | 互相等待资源,无法继续执行 |
多媒体技术
图像格式
| 格式 | 全称 | 类型 | 是否压缩 | 是否透明 | 特点 | 典型应用 |
|---|---|---|---|---|---|---|
| JPG / JPEG | Joint Photographic Experts Group | 位图 | 有损压缩 | ❌ | 体积小,颜色丰富 | 照片、网页图片 |
| PNG | Portable Network Graphics | 位图 | 无损压缩 | ✅ | 支持透明,清晰度高 | UI设计、图标 |
| GIF | Graphics Interchange Format | 位图 | 无损压缩 | ✅(简单透明) | 支持动画 | 表情包、动图 |
| BMP | Bitmap | 位图 | 不压缩 | ❌ | 质量高但体积大 | Windows原始图像 |
| TIFF | Tagged Image File Format | 位图 | 无损/有损 | ✅ | 质量极高 | 印刷、扫描 |
| WebP | Web Picture | 位图 | 有损/无损 | ✅ | 体积更小 | 网页优化 |
| SVG | Scalable Vector Graphics | 矢量图 | 不适用 | ✅ | 无限缩放不失真 | 图标、地图(你这个GIS很常用) |
未压缩原始图像大小:数据量(字节)=宽度(像素)x高度(像素)x颜色深度(位数)/8
音频格式
| 格式 | 类型 | 压缩方式 | 特点 | 典型应用 |
|---|---|---|---|---|
| MP3 | 音频 | 有损压缩 | 体积小,普及率高 | 音乐播放 |
| WAV | 音频 | 无压缩(或无损) | 音质极高,体积大 | 专业音频处理 |
| AAC | 音频 | 有损压缩 | 比MP3更高效 | 视频平台、手机 |
| FLAC | 音频 | 无损压缩 | 音质无损,体积较大 | 无损音乐 |
| WMA | 音频 | 有损压缩 | 微软格式 | Windows平台 |
码率公式:码率(bps)声道数x采样频率x量化位数。
数据量公式:数据量(字节)=码率x时间/8。
视频格式
| 格式 | 类型 | 压缩方式 | 特点 | 应用 |
|---|---|---|---|---|
| MP4 | 视频容器 | 有损 | 兼容性强 | 网络视频 |
| AVI | 视频容器 | 可无压缩 | 体积大 | 早期视频 |
| MKV | 视频容器 | 有损 | 支持多字幕/音轨 | 高清视频 |
| MOV | 视频容器 | 有损 | 苹果格式 | 视频剪辑 |
| WMV | 视频容器 | 有损 | 微软格式 | Windows |
二、计算机网络
计算机网络基础
计算机网络的定义
将分散的、独立的计算机系统,通过通信线路和设备连接起来,在软件支持下实现资源共享和信息传递的系统。
计算机网络的主要功能
- 数据通信
- 资源共享
- 分布式处理
- 提高可靠性
- 负载均衡
计算机网络的分类
按覆盖范围分类
- LAN(局域网):小、快、稳、自己管,如学校、公司、机房
- MAN(城域网):一个城市范围
- WAN(广域网):大、慢、远、运营商管。跨地区、跨国家,如 Internet
- PAN(个人区域网):如蓝牙耳机、手机热点
按拓扑结构分类
- 总线型
- 星型
- 环型
- 树型
- 网状
高频点
- 局域网中最常见的拓扑结构是星型
- 星型网络中,中心设备损坏会影响整个网络
网络性能指标
带宽
表示网络传输能力,常用单位:
- bps
- Kbps
- Mbps
- Gbps
注意:
- 1 Byte = 8 bit
- 宽带写的是 Mbps
- 下载速度常显示 MB/s
- 例如:100 Mbps 理论下载速度约为:100 ÷ 8 = 12.5 MB/s
时延(延迟)
数据从发送端到接收端所花的时间,包括:
- 发送时延
- 传播时延
- 处理时延
- 排队时延
吞吐量
单位时间内实际成功传输的数据量。
区别带宽:
- 带宽:理论最大值
- 吞吐量:实际达到的速度
OSI 七层模型
七层结构
- 应用层 : HTTP、FTP、SMTP、DNS 等
- 表示层 :加密、压缩、格式转换
- 会话层 : 建立 / 管理 / 断开会话
- 传输层 : 段、TCP/UDP、端口号
- 网络层 :分组、IP 地址、路由、路由器
- 数据链路层: 交换机、帧、MAC 地址、CSMA/CD(以太网)、差错校验
- 物理层 :比特流、电压、接口、介质(双绞线、光纤)
口诀
应表会传网数物
各层作用与协议
| 层次 | 作用 | 数据单位 | 常见协议/设备 |
|---|---|---|---|
| 应用层 | 面向用户提供服务 | 数据 | HTTP、FTP、SMTP、DNS |
| 表示层 | 数据格式转换、加密、压缩 | 数据 | ASCII、JPEG、SSL |
| 会话层 | 建立、管理、终止会话 | 数据 | 会话控制 |
| 传输层 | 端到端传输 | 段 | TCP、UDP |
| 网络层 | 路由选择、逻辑寻址 | 包/数据报 | IP、ICMP |
| 数据链路层 | 成帧、差错检测、MAC寻址 | 帧 | 交换机、MAC |
| 物理层 | 比特流传输 | 比特 | 网线、集线器、中继器 |
数据单位口诀
段 → 包 → 帧 → 比特
B/S架构
B/S 三层架构通常包括:
- 表示层(Presentation Layer)
- 业务逻辑层(Business Logic Layer)
- 数据访问层(Data Access Layer)
B/S 架构的基本特点
- 用户通过浏览器访问系统
- 业务逻辑主要在服务器端处理
- 数据统一保存在数据库中
- 客户端安装维护成本低
- 适合局域网和互联网应用
B/S 架构的优点是什么?
- 客户端维护简单
- 使用方便
- 适合网络化应用
- 易于升级维护
TCP/IP 四层模型
| TCP/IP 层 | 对应 OSI 层 | 常见协议 |
|---|---|---|
| 应用层 | 应用层、表示层、会话层 | HTTP、HTTPS、FTP、SMTP、DNS |
| 传输层 | 传输层 | TCP、UDP |
| 网络层 | 网络层 | IP、ICMP、ARP |
| 网络接口层 | 数据链路层、物理层 | Ethernet、MAC |
TCP 与 UDP
TCP 特点
- 面向连接
- 可靠传输
- 有确认、重传、流量控制、拥塞控制
- 速度较慢
适用场景
- 网页浏览
- 文件传输
- 邮件
- 数据要求准确的业务
UDP 特点
- 无连接
- 不可靠传输
- 开销小
- 速度快
- 实时性强
适用场景
- 视频直播
- 语音通话
- 在线游戏
- DNS 查询
TCP 与 UDP 对比
| 对比项 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接 | 无连接 |
| 可靠性 | 可靠 | 不可靠 |
| 速度 | 较慢 | 较快 |
| 是否有确认 | 有 | 无 |
| 是否有重传 | 有 | 无 |
| 适用场景 | 文件、网页、邮件 | 音视频、游戏、DNS |
高频记忆
- TCP:可靠
- UDP:快
TCP 三次握手与四次挥手
三次握手(建立连接)
- 客户端发送 SYN
- 服务器返回 SYN + ACK
- 客户端返回 ACK
作用
- 建立可靠连接
- 确认双方收发能力正常
四次挥手(断开连接)
- 客户端发送 FIN
- 服务器返回 ACK
- 服务器发送 FIN
- 客户端返回 ACK
高频点
- 建立连接:三次握手
- 断开连接:四次挥手
IP 地址
IP 地址的作用
用于唯一标识网络中的一台主机。
IPv4
- 长度:32 位
- 示例:192.168.1.1
IPv6
- 长度:128 位
- 作用:解决 IPv4 地址不足问题
高频点
- IPv4:32位
- IPv6:128位
IP 地址分类
| 类别 | 范围 | 默认子网掩码 |
|---|---|---|
| A 类 | 1~126 | 255.0.0.0 |
| B 类 | 128~191 | 255.255.0.0 |
| C 类 | 192~223 | 255.255.255.0 |
| D 类 | 224~239 | 组播 |
| E 类 | 240~255 | 保留 |
注意
- 127.x.x.x:回环地址
- 0.0.0.0:未指定地址
子网掩码
作用
用来区分:
- 网络号
- 主机号
示例
- IP:192.168.1.10
- 子网掩码:255.255.255.0
- 网络号:192.168.1
- 主机号:10
判断是否同一网段
方法:
- IP 地址与子网掩码做按位与运算
- 若网络号相同,则在同一网段
例子:
IP1:192.168.1.10
IP2:192.168.2.10
掩码:255.255.255.0
网络地址分别是:
192.168.1.0 和 192.168.2.0
→ 不一样 → 不同网段
求子网划分★
常见特殊 IP 地址
- 127.0.0.1:本机回环地址
- 0.0.0.0:未指定地址 / 本机所有地址
- 255.255.255.255:广播地址
私有 IP 地址
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
MAC 地址
定义
MAC 地址是网卡的物理地址。
- 长度:48 位
- 示例:00-1A-2B-3C-4D-5E
区别
- IP 地址:逻辑地址,可变
- MAC 地址:物理地址,通常固定
高频点
- IP 地址用于网络层
- MAC 地址用于数据链路层
ARP 与 DNS
ARP
- 作用:根据 IP 地址查找 MAC 地址
- 口诀:ARP:IP → MAC
DNS
- 作用:将域名解析为 IP 地址
- 口诀:DNS:域名 → IP
常见协议及端口号
| 协议 | 作用 | 默认端口 |
|---|---|---|
| HTTP | 超文本传输协议 | 80 |
| HTTPS | 安全网页传输 | 443 |
| FTP | 文件传输 | 21 |
| SSH | 安全远程登录 | 22 |
| Telnet | 远程登录 | 23 |
| SMTP | 发送邮件 | 25 |
| DNS | 域名解析 | 53 |
| DHCP | 自动分配 IP | 67/68 |
| POP3 | 接收邮件 | 110 |
| IMAP | 邮件同步接收 | 143 |
高频必背
- HTTP → 80
- HTTPS → 443
- FTP → 21
- SSH → 22
- SMTP → 25
- DNS → 53
HTTP 与 HTTPS
HTTP
- 明文传输
- 不安全
- 默认端口:80
HTTPS
- HTTP + SSL/TLS
- 数据加密,更安全
- 默认端口:443
高频点
HTTPS 比 HTTP 更安全,原因:传输过程加密
常见网络设备 ★

中继器(Repeater)
- 作用:放大信号、延长传输距离
- 工作层:物理层
- 信号放大器
集线器(Hub)
- 作用:多口中继器,广播转发
- 工作层:物理层
- 一根网线进 → 分成多根网线出
交换机(Switch)
- 作用:根据 MAC 地址 转发数据 、同一网络
- 工作层:数据链路层
- 用于扩展网口、连接多台设备,实现局域网内数据转发。交换机是一种多端口网桥
路由器(Router)
- 作用:根据 IP 地址 选择路径 、不同网络
- 工作层:网络层
- 路由器 = 路由模块 + 小型交换机 + 无线 AP
- 路由器工作在网络层,用于连接不同网络、选择路径、实现上网,并为设备分配 IP
网关(Gateway)
- 作用:不同协议网络之间的转换
- 工作层:网络层
无线AP
- 作用:把有线网络转成无线网络的设备,相当于 “无线交换机”
- 工作层:物理层、数据链路层
光猫 / 调制解调器
- 作用:把运营商的光纤信号 / 电话线信号转换成电脑、路由器能识别的网线信号
- 工作层:物理层
- 光纤 → 猫 → 路由器 → 交换机 / AP → 电脑、手机
无线网桥
- 连接两个或多个有线局域网,通过无线电波代替网线,实现远距离组网
- 本质是无线的网线
NAT
- 将内部网络的私有IP地址,转换为对外的公有IP地址进行通信。
网络拓扑图 ★


| 类型 | 所在层级 | 主要作用 | 主要连接对象 | 性能要求 | 常见特点 | 一句话总结 |
|---|---|---|---|---|---|---|
| 接入交换机 | 接入层 | 连接终端设备,让用户接入网络 | 电脑、打印机、摄像头、AP、电话、门禁等 | 较低 | 端口数量多、常支持 VLAN、部分支持 PoE | 接终端 |
| 汇聚交换机 | 汇聚层 | 汇总多个接入交换机的数据,并做策略控制 | 多台接入交换机、上联核心交换机 | 中等偏高 | 常支持三层交换、ACL、链路聚合、VLAN 间通信 | 管区域 |
| 核心交换机 | 核心层 | 承担全网主干高速转发 | 汇聚交换机、服务器区、防火墙、出口设备、数据中心 | 最高 | 高性能、高可靠、高带宽、支持冗余 | 做骨干 |
电子邮件的网络结构图

传输介质
| 传输介质 | 分类 | 传输方式 | 主要特点 | 常见应用 |
|---|---|---|---|---|
| 双绞线 | 有线 | 电信号 | 成本低、安装方便、应用广泛 | 局域网、办公室网络 |
| 同轴电缆 | 有线 | 电信号 | 抗干扰能力比双绞线强 | 有线电视、早期网络 |
| 光纤 | 有线 | 光信号 | 速度快、距离远、抗干扰强 | 骨干网、运营商网络、机房 |
| 无线电波 | 无线 | 电磁波 | 覆盖范围广、移动方便 | WiFi、手机通信 |
| 微波 | 无线 | 电磁波 | 方向性强、容量大 | 点对点通信、卫星通信 |
| 红外线 | 无线 | 光波 | 近距离、方向性强 | 遥控器、短距离设备通信 |
| 卫星通信 | 无线 | 电磁波 | 覆盖范围极广 | 跨区域通信、电视广播、导航 |
TCP/IP、HTTP、DNS、DHCP、ARP 工作流程★
1)简述 DNS 的工作过程
答:
DNS 的工作过程是:用户输入域名后,系统首先查询浏览器缓存、操作系统缓存和 hosts 文件;若仍未找到,则向本地域名服务器发起请求。本地域名服务器再逐级向根域名服务器、顶级域名服务器和权威域名服务器查询,最终获得对应的 IP 地址并返回给客户端,同时缓存结果。
2)简述 DHCP 的工作过程
答:
DHCP 的工作流程通常分为四步,即 DORA 流程:
(1)客户端广播 DHCP Discover 报文寻找 DHCP 服务器;
(2)服务器返回 DHCP Offer 报文提供可用 IP 地址;
(3)客户端发送 DHCP Request 报文请求使用该 IP;
(4)服务器返回 DHCP ACK 报文确认分配。
最终客户端获得 IP 地址、子网掩码、网关和 DNS 等网络参数。
| 步骤 | 英文 | 中文 | 发送方 → 接收方 | 说明 |
|---|---|---|---|---|
| 1 | Discover | 发现 | 客户端 → 广播 | 客户端寻找 DHCP 服务器 |
| 2 | Offer | 提供 | DHCP服务器 → 客户端 | 服务器提供一个可用 IP |
| 3 | Request | 请求 | 客户端 → 广播 | 客户端表示“我要这个 IP” |
| 4 | ACK | 确认 | DHCP服务器 → 客户端 | 服务器正式分配 IP |
3)简述 HTTP 的工作过程
答:
HTTP 的工作过程是:用户在浏览器输入网址后,浏览器首先通过 DNS 获取服务器 IP 地址,然后与服务器建立 TCP 连接,接着发送 HTTP 请求报文,服务器处理请求后返回 HTTP 响应报文,浏览器再解析并渲染页面,最终显示给用户。
4)简述 TCP/IP 的工作过程
答:
TCP/IP 工作过程中,应用层产生的数据首先由 TCP 协议进行分段和编号,并添加端口号、序号等控制信息;随后由 IP 协议添加源 IP 和目的 IP 地址进行寻址和路由;数据在网络中逐跳传输,到达目标主机后再逐层解封装,由 TCP 进行重组、校验和确认,最终交付给应用程序。
| 步骤 | 过程 | 说明 | 关键词 |
|---|---|---|---|
| 1 | 应用层产生数据 | 例如浏览器访问网页、QQ发消息 | 原始数据 |
| 2 | TCP 进行分段 | 把大数据拆成多个报文段 | 分段 |
| 3 | TCP 添加首部 | 加入源端口、目的端口、序号等 | 端口、序号、确认号 |
| 4 | IP 进行封装 | 给每个 TCP 报文段加上源 IP、目的 IP | IP 地址 |
| 5 | 数据链路层封装成帧 | 加 MAC 地址,准备在局域网中传输 | MAC 地址 |
| 6 | 物理层传输比特流 | 通过网线、光纤、无线发送 | 0/1 比特流 |
| 7 | 路由器逐跳转发 | 根据目的 IP 选择下一跳 | 路由转发 |
| 8 | 接收端逐层解封装 | 去掉各层首部,还原原始数据 | 解封装 |
| 9 | TCP 重组并校验 | 按顺序重组、校验是否丢失 | 可靠传输 |
| 10 | 应用程序接收数据 | 浏览器、聊天软件等得到数据 | 数据交付 |
5) ARP(地址解析协议)用于将IP地址解析为MAC地址过程
检查缓存: 主机先查看本地ARP缓存,若存在目标IP对应的MAC地址,直接使用。
发送ARP请求: 若无记录,主机广播ARP请求帧,包含源IP/MAC和目标IP。
目标响应: 目标主机收到请求后,单播发送ARP响应,包含自己的MAC地址。
更新缓存: 源主机收到响应后,将IP-MAC映射存入ARP缓存,并开始通信。
冲突域与广播域
冲突域
多个设备同时发送数据时可能发生冲突的范围。
广播域
广播数据包能够传播到的范围。
高频结论
- Hub:不能隔离冲突域,也不能隔离广播域
- Switch:能隔离冲突域,不能隔离广播域
- Router:能隔离广播域,也能隔离冲突域
常见网络命令
ping
- 作用:测试网络是否连通
- 本质:使用 ICMP 协议
- 示例:ping 127.0.0.1
- 意义:测试本机 TCP/IP 协议栈是否正常
ipconfig
- 作用:查看本机 IP 配置(Windows)
tracert
- 作用:查看数据包经过的路径(Windows)
netstat
- 作用:查看网络连接状态
数据交换技术
电路交换
先建立专用连接,再通信。例如:传统电话网络
报文交换
以整个报文为单位进行传输
分组交换
将数据分成多个小包进行传输。Internet 主要采用分组交换
高频点
互联网采用的交换方式:分组交换
差错控制与校验
检错
发现错误,例如:
- 奇偶校验
- CRC(循环冗余校验)
纠错
不仅发现错误,还能自动纠正错误
高频点
CRC 常用于数据链路层差错检测
流量控制与拥塞控制
流量控制
控制发送方发送速度,防止接收方处理不过来。本质:解决“对方接不住”
拥塞控制
防止整个网络过载。本质:解决“网络太堵”
网络安全基础
防火墙
作用:控制网络访问,阻止非法访问
病毒、木马、蠕虫区别
- 病毒:依附于宿主程序传播
- 木马:伪装成正常程序,窃取信息
- 蠕虫:能自我复制,并通过网络传播
高频点
传播速度快、自动扩散 → 蠕虫
常见攻击
- DDoS(分布式拒绝服务攻击)
- SQL 注入
- 钓鱼网站
- 暴力破解
易混考点总结
IP 与 MAC
- IP:逻辑地址,可变
- MAC:物理地址,通常固定
交换机与路由器
- 交换机:依据 MAC 地址转发,常用于局域网内部
- 路由器:依据 IP 地址转发,连接不同网络
HTTP 与 HTTPS
- HTTP:不加密
- HTTPS:加密传输
TCP 与 UDP
- TCP:可靠
- UDP:快
带宽与吞吐量
- 带宽:理论最大值
- 吞吐量:实际传输速度
考试高频速记口诀
OSI 七层
应表会传网数物
数据单位
段 → 包 → 帧 → 比特
协议解析
- ARP:IP → MAC
- DNS:域名 → IP
TCP / UDP
- TCP:可靠
- UDP:快速
常见端口
- HTTP → 80
- HTTPS → 443
- FTP → 21
- SSH → 22
- SMTP → 25
- DNS → 53
最核心必背 20 点
- 计算机网络的功能:通信、共享
- LAN 是局域网,WAN 是广域网
- 最常见拓扑结构:星型
- 带宽单位:bps
- 1 Byte = 8 bit
- OSI 七层:应表会传网数物
- TCP/IP 四层模型
- TCP 和 UDP 属于传输层
- IP 属于网络层
- MAC 属于数据链路层
- TCP 可靠,UDP 快
- TCP 建立连接:三次握手
- TCP 断开连接:四次挥手
- IPv4 是 32 位
- IPv6 是 128 位
- DNS:域名转 IP
- ARP:IP 转 MAC
- 交换机看 MAC
- 路由器看 IP
- HTTP 80,HTTPS 443,DNS 53
一句话总结
计算机网络最核心考点就是:分层模型、TCP/UDP、IP/MAC、协议端口、网络设备、地址与解析。
三、数据库系统
关系数据库:SQL语法(SELECT、INSERT、UPDATE、DELETE)、事务特性(ACID)。
数据库设计:ER图、范式(1NF、2NF、3NF)。
NoSQL数据库:MongoDB、Redis的特点与应用场景。
三大范式
| 范式 | 核心规则 | 解决问题 | 不符合示例 | 优化方式 | 核心 |
|---|---|---|---|---|---|
| 第一范式(1NF) | 字段必须原子性(不可再分) | 数据混乱、难查询 | 一个字段存多个值(如:电话用逗号拼接) | 拆字段或拆表 | 列不可再分 |
| 第二范式(2NF) | 非主键字段必须完全依赖主键 | 部分依赖、数据冗余 | 商品名称依赖商品ID,但主键是(订单ID+商品ID) | 满足 1NF +消除部分函数依赖 | |
| 第三范式(3NF) | 非主键字段不能依赖其他非主键字段 | 传递依赖、更新异常 | 学校名称依赖学校ID,而学校ID依赖学生ID | 再次拆表 | 满足 2NF + 消除传递依赖 |
索引
| 分类 | 内容 | 说明 | 使用建议 |
|---|---|---|---|
| 索引本质 | 数据结构 | 常见是 B+树 | 适合范围查询、排序 |
| 索引作用 | 提高查询速度 | 类似“目录” | 减少全表扫描 |
| 代价 | 写入变慢 | insert/update/delete 需要维护索引 | 不要滥用索引 |
CREATE INDEX 索引名 ON 表名(字段名);
B树 vs B+树 核心区别
| 对比点 | B树(B-Tree) | B+树(B+Tree) |
|---|---|---|
| 数据存储位置 | 所有节点都存数据 | 只有叶子节点存数据 |
| 叶子节点 | 不一定有序连接 | 叶子节点通过链表相连(有序) |
| 查询方式 | 命中非叶子节点就结束 | 必须查到叶子节点 |
| 查询性能 | 不稳定(路径不同) | 稳定(所有查询路径一样) |
| 范围查询 | 较慢 | 非常快(链表遍历) |
| 磁盘IO | 较多 | 更少(更矮更胖) |
| 适合场景 | 理论结构 | 数据库索引 |
事务★
事务四大特性(ACID)
| 特性 | 英文 | 说明 | 举例 |
|---|---|---|---|
| 原子性 | Atomicity | 要么全做,要么全不做 | 转账不能只扣钱 |
| 一致性 | Consistency | 数据从一个正确状态到另一个正确状态 | 总金额不变 |
| 隔离性 | Isolation | 事务之间互不干扰 | 多人同时操作 |
| 持久性 | Durability | 提交后永久生效 | 宕机也不丢数据 |

锁
| 分类 | 类型 | 说明 | 典型场景 |
|---|---|---|---|
| 按粒度 | 行锁 | 锁一行数据 | 高并发更新 |
| 表锁 | 锁整张表 | 批量操作 | |
| 按操作 | 共享锁(S锁) | 可读不可写 | 查询 |
| 排他锁(X锁) | 可写不可读 | 更新 | |
| 按实现 | 悲观锁 | 先加锁再操作 | 银行转账 |
| 乐观锁 | 不加锁,通过版本控制 | 高并发系统 |
死锁
死锁产生的四个必要条件
| 条件 | 说明 |
|---|---|
| 互斥条件 | 资源一次只能被一个事务占用 |
| 请求与保持 | 已持有资源,同时请求新资源 |
| 不可剥夺 | 已获得资源不能强制释放 |
| 循环等待 | 存在资源等待环 |
E-R图★
(出版社编号)
│
┌────────┐
│ 出版社 │
└────────┘
/ │ \
(名称) (地址) (电话)
│
1
│
◇出版◇
│
N
│
┌────────┐
│ 图书 │
└────────┘
/ | | \
(图书编号)(书名)(作者)(单价)
\ | /
(库存数量)
│
│
┌────────────┴────────────┐
│ │
│ │
N N
│ │
◇借阅◇ ◇管理◇
│ │
M 1
│ │
┌────────┐ ┌────────┐
│ 读者 │ │ 管理员 │
└────────┘ └────────┘
/ | \ / | \
(读者编号)(姓名)(电话) (管理员编号)(姓名)(联系方式)
关系模式
Reader(读者编号, 姓名, 电话)
Publisher(出版社编号, 名称, 地址, 电话)
Admin(管理员编号, 姓名, 联系方式)
Book(图书编号, 书名, 作者, 单价, 库存数量, 出版社编号, 管理员编号)
Borrow(读者编号, 图书编号, 借阅日期, 应还日期, 实还日期)
四、软件工程
软件工程(Software Engineering) 是运用工程化方法、原则和工具来开发、运行、维护软件的一门学科。
软件生命周期
| 阶段 | 主要任务 | 核心问题 | 主要产出 |
|---|---|---|---|
| 可行性研究 | 判断项目是否值得做 | 能不能做、值不值得做 | 可行性研究报告、项目开发计划初稿 |
| 需求分析 | 明确用户需求 | 软件做什么 | 需求规格说明书、数据流图、数据字典、用例说明 |
| 总体设计 | 设计系统整体结构 | 系统怎么分模块 | 概要设计说明书、系统架构图、模块结构图、数据库设计初稿 |
| 详细设计 | 设计模块内部实现 | 模块怎么实现 | 详细设计说明书、程序流程图、算法说明、数据库表结构设计 |
| 编码 | 写程序代码 | 把设计变成程序 | 源程序代码、程序注释、开发版本软件 |
| 测试 | 查找并修复错误 | 程序有没有问题 | 测试计划、测试用例、测试报告、缺陷报告、修正版程序 |
| 运行维护 | 上线后维护和升级 | 软件怎么长期运行 | 可运行软件系统、用户手册、维护记录、升级版本 |
面向对象设计原则
| 序号 | 原则 | 英文 | 核心思想 | 一句话记忆 |
|---|---|---|---|---|
| 1 | 单一职责原则 | SRP | 一个类只负责一个职责 | 一个类只做一件事 |
| 2 | 开放-封闭原则 | OCP | 对扩展开放,对修改关闭 | 加功能尽量别改旧代码 |
| 3 | 里氏替换原则 | LSP | 子类必须能够替换父类 | 子类不能把父类规则搞坏 |
| 4 | 依赖倒置原则 | DIP | 依赖抽象,不依赖具体 | 面向接口编程 |
| 5 | 接口隔离原则 | ISP | 使用多个小接口,而不是大而全接口 | 接口要小而专 |
| 6 | 迪米特法则 | LoD | 只和直接朋友通信 | 少和陌生对象说话 |
| 7 | 合成复用原则 | CRP / CARP | 尽量使用组合/聚合,而不是继承 | 优先组合,少用继承 |
23种设计模式
| 创建型(5) | 结构型(7) | 行为型(11) |
|---|---|---|
| 单例 | 适配器 | 责任链 |
| 工厂方法 | 桥接 | 命令 |
| 抽象工厂 | 组合 | 解释器 |
| 建造者 | 装饰器 | 迭代器 |
| 原型 | 外观 | 中介者 |
| 享元 | 备忘录 | |
| 代理 | 观察者 | |
| 状态 | ||
| 策略 | ||
| 模板方法 | ||
| 访问者 |
| 分类 | 设计模式 | 定义 / 核心思想 | 解决的问题 | 典型场景 | 关键词 |
|---|---|---|---|---|---|
| 创建型 | 单例模式(Singleton) | 保证一个类只有一个实例 | 避免重复创建对象 | 配置类、线程池 | 全局唯一 |
| 创建型 | 工厂方法模式(Factory Method) | 工厂负责创建对象 | 解耦对象创建 | 日志工厂 | 解耦创建 |
| 创建型 | 抽象工厂模式(Abstract Factory) | 创建一组相关对象 | 产品族管理 | 跨平台 UI | 产品族 |
| 创建型 | 建造者模式(Builder) | 分步骤构建复杂对象 | 参数复杂问题 | 链式构建 | 分步骤 |
| 创建型 | 原型模式(Prototype) | 通过复制创建对象 | 提高创建效率 | clone | 对象复制 |
| 结构型 | 适配器模式(Adapter) | 转换不兼容接口 | 接口兼容问题 | 电源适配器 | 转换接口 |
| 结构型 | 桥接模式(Bridge) | 抽象与实现分离 | 多维度扩展问题 | JDBC | 分离维度 |
| 结构型 | 组合模式(Composite) | 树形结构统一处理 | 部分整体关系 | 文件目录 | 树结构 |
| 结构型 | 装饰器模式(Decorator) | 动态增强对象功能 | 功能扩展问题 | Java IO | 动态增强 |
| 结构型 | 外观模式(Facade) | 提供统一入口 | 降低系统复杂度 | Spring MVC | 统一入口 |
| 结构型 | 享元模式(Flyweight) | 共享对象减少内存 | 对象过多问题 | 常量池 | 对象复用 |
| 结构型 | 代理模式(Proxy) | 代理对象控制访问 | 增强或保护对象 | AOP | 控制访问 |
| 行为型 | 责任链模式(Chain of Responsibility) | 请求沿链传递 | 请求处理解耦 | Filter | 链式处理 |
| 行为型 | 命令模式(Command) | 请求封装成对象 | 支持撤销重做 | 遥控器 | 命令封装 |
| 行为型 | 解释器模式(Interpreter) | 定义语法解释规则 | 解析语言 | SQL解析 | 语法解析 |
| 行为型 | 迭代器模式(Iterator) | 顺序访问集合元素 | 遍历集合 | Iterator | 集合遍历 |
| 行为型 | 中介者模式(Mediator) | 中间对象协调通信 | 降低耦合 | 聊天室 | 集中协调 |
| 行为型 | 备忘录模式(Memento) | 保存对象状态 | 状态恢复 | Ctrl+Z | 快照恢复 |
| 行为型 | 观察者模式(Observer) | 一对多通知机制 | 自动通知 | Vue响应式 | 发布订阅 |
| 行为型 | 状态模式(State) | 状态决定行为 | 状态切换复杂 | 订单流程 | 状态流转 |
| 行为型 | 策略模式(Strategy) | 动态切换算法 | 消除大量 if | 支付方式 | 算法替换 |
| 行为型 | 模板方法模式(Template Method) | 定义算法骨架 | 流程复用 | JDBC Template | 固定流程 |
| 行为型 | 访问者模式(Visitor) | 数据结构与操作分离 | 增加新操作 | 编译器 | 操作分离 |
软件工程成熟度模型CMM / CMMI★
| 等级 | 名称 | 关键词 | 特点 | 一句话记忆 |
|---|---|---|---|---|
| 1级 | 初始级(Initial) | 混乱、随意 | 过程无序,依赖个人能力 | 靠人干活 |
| 2级 | 可重复级/已管理级(Repeatable / Managed) | 项目管理 | 有基本项目管理,能重复成功 | 靠项目管理 |
| 3级 | 已定义级(Defined) | 标准化 | 过程标准化、文档化 | 靠制度做事 |
| 4级 | 量化管理级(Managed / Quantitatively Managed) | 量化、测量 | 用数据控制过程和质量 | 靠数据管理 |
| 5级 | 优化级(Optimizing) | 持续改进 | 持续优化、预防问题、创新提升 | 靠改进变强 |
软件开发(过程)模型
| 模型 | 核心思想 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 瀑布模型 | 顺序开发,阶段固定 | 结构清晰,管理方便 | 不适应需求变化 | 需求明确、稳定项目 |
| 原型模型 | 先做原型,再完善需求 | 易确认需求 | 容易反复修改 | 需求不明确项目 |
| 增量模型 | 分模块逐步交付 | 可早交付部分功能 | 模块划分要求高 | 大型可拆分项目 |
| 迭代模型 | 反复开发逐步完善 | 灵活,适应变化 | 管理难度较高 | 需求逐步清晰项目 |
| 螺旋模型 | 风险驱动开发 | 风险控制强 | 成本高,复杂 | 大型高风险项目 |
| 喷泉模型 | 面向对象,阶段重叠 | 灵活,支持复用 | 管理较复杂 | 面向对象开发 |
| V模型 | 开发与测试对应 | 测试思路清晰 | 仍较死板 | 强调测试管理项目 |
| W模型 | 开发与测试并行 | 尽早发现问题 | 过程较复杂 | 强调测试前移项目 |
| 敏捷模型 | 快速迭代、持续交付 | 灵活、响应快 | 对团队要求高 | 互联网、需求变化快项目 |
数据流图DFD★
数据流图是需求分析阶段用来描述系统数据流动、处理和存储的图形工具,只画 “数据怎么走”,不画控制、不画时序、不画程序结构。
软件结构图SC
结构化分析SA
阶段:需求分析阶段
核心思想:自顶向下、逐步分解、面向数据流
工具:数据流图 DFD(核心)、数据字典 DD、判定树、判定表、E-R 图(有时也用)
输出结果:需求规格说明书、数据流图、数据字典等。
结构化设计SD
阶段:概要设计 / 总体设计阶段
核心思想:自顶向下、模块化、高内聚低耦合
工具:软件结构图 SC(核心)、模块结构图
UML
UML(Unified Modeling Language,统一建模语言)
是一种用于描述、可视化、构造和文档化软件系统的标准化图形语言。
UML 的核心作用
| 作用 | 说明 |
|---|---|
| 可视化(Visualize) | 把系统结构和行为画出来 |
| 规范化(Specify) | 用统一标准表达设计 |
| 构造(Construct) | 辅助系统分析与设计 |
| 文档化(Document) | 形成项目设计文档 |
UML 图分类表
| 类别 | 图名称 | 作用 | 考试频率 |
|---|---|---|---|
| 结构图 | 类图(Class Diagram) | 描述类、属性、方法、关系 | ⭐⭐⭐⭐⭐ |
| 结构图 | 对象图(Object Diagram) | 描述对象实例及关系 | ⭐⭐ |
| 结构图 | 包图(Package Diagram) | 描述模块/包之间关系 | ⭐⭐ |
| 结构图 | 组件图(Component Diagram) | 描述系统组件及依赖关系 | ⭐⭐⭐ |
| 结构图 | 部署图(Deployment Diagram) | 描述软件与硬件部署关系 | ⭐⭐⭐ |
| 行为图 | 用例图(Use Case Diagram) | 描述用户与系统功能关系 | ⭐⭐⭐⭐⭐ |
| 行为图 | 活动图(Activity Diagram) | 描述业务流程/处理流程 | ⭐⭐⭐⭐ |
| 行为图 | 状态图(State Diagram) | 描述对象状态变化 | ⭐⭐⭐ |
| 交互图 | 顺序图(Sequence Diagram) | 描述对象之间消息交互顺序 | ⭐⭐⭐⭐⭐ |
| 交互图 | 通信图(Communication Diagram) | 描述对象间协作关系 | ⭐⭐ |
类图

| 关系 | 图形 | 含义 | 关键词 | 示例 |
|---|---|---|---|---|
| 关联 | 实线 | 类之间有联系 | has / knows | 用户—订单 |
| 依赖 | 虚线箭头 | 临时使用 | use | 订单服务→支付服务 |
| 泛化 | 实线空心三角 | 继承 | is-a | 学生→人 |
| 实现 | 虚线空心三角 | 实现接口 | implements | 狗→动物接口 |
| 聚合 | 空心菱形 | 弱整体部分 | has-a | 部门—员工 |
| 组合 | 实心菱形 | 强整体部分 | contains | 订单—订单项 |
用例图
用例图(也可称用例建模)描述的是外部执行者(Actor)所理解的系统功能。
| 关系 | 图形 | 连接对象 | 含义 | 关键词 | 箭头方向 | 示例 |
|---|---|---|---|---|---|---|
| 关联 | 实线 | 参与者 ↔ 用例 | 谁能使用什么功能 | 使用 | 一般不强调 | 用户—登录 |
| 包含 | 虚线箭头 <<include>> |
用例 → 用例 | 必须执行的公共功能 | 必须 | 主用例→子用例 | 登录→身份验证 |
| 扩展 | 虚线箭头 <<extend>> |
用例 → 用例 | 条件触发的附加功能 | 可选 | 扩展用例→基础用例 | 使用优惠券→下单 |
| 泛化(参与者) | 实线空心三角 | 参与者 → 参与者 | 参与者继承 | 是一个 | 子→父 | 管理员→用户 |
| 泛化(用例) | 实线空心三角 | 用例 → 用例 | 用例特殊化 | 特殊化 | 子→父 | 微信支付→支付 |
注:extend 是扩展到主流程;include是主用例包含子用例。
视频
顺序图
着重体现对象间消息传递的时间顺序。

| 组成部分 | 英文 | 图形/表现 | 含义 | 作用 |
|---|---|---|---|---|
| 参与者 | Actor | 小人图标 | 系统外部与系统交互的人或其他系统 | 发起或接收交互 |
| 对象 / 实例 | Object / Instance | 矩形框 | 系统中的某个具体对象实例 | 参与消息交互 |
| 生命线 | Lifeline | 对象下方的竖虚线 | 表示对象在一段时间内存在 | 体现时间维度上的存在 |
| 激活条 | Activation / Focus of Control | 生命线上的细长矩形 | 表示对象正在执行某个操作 | 体现对象“忙碌/执行中” |
| 消息 | Message | 箭头线 | 对象之间传递的信息/调用 | 表示交互行为 |
| 返回消息 | Return Message | 虚线箭头 | 表示调用结果返回 | 体现调用完成后的返回 |
| 约束 / 注释 | Constraint / Note | 注释框 | 对流程或对象进行补充说明 | 提高可读性 |
活动图
用来描述一个流程、步骤、动作的先后顺序,就是程序 / 业务的 “流程图”。
| 组成部分 | 英文 | 图形特征 | 含义 | 作用 |
|---|---|---|---|---|
| 初始节点 | Initial Node | 实心圆 | 活动开始 | 表示流程起点 |
| 活动 / 动作 | Activity / Action | 圆角矩形 | 一个具体步骤或操作 | 表示业务处理过程 |
| 控制流 | Control Flow | 带箭头的实线 | 活动之间的执行顺序 | 表示流程走向 |
| 对象节点 | Object Node | 普通矩形 | 数据或对象在流程中的传递 | 表示输入/输出数据 |
| 对象流 | Object Flow | 带箭头的线 | 对象/数据的流转 | 表示数据传递 |
| 判断节点 | Decision Node | 菱形 | 条件判断 | 表示分支选择 |
| 分叉节点 | Fork Node | 粗横线/竖线 | 一个流程分成多个并发流程 | 表示并行开始 |
| 汇合节点 | Join Node | 粗横线/竖线 | 多个并发流程汇合 | 表示并行结束 |
| 终止节点(活动终止) | Activity Final Node | 空心圆外套实心圆 | 整个活动结束 | 表示流程彻底结束 |
| 流程终止节点(可选) | Flow Final Node | 圆中有X | 某一条流程结束 | 表示局部流程终止 |
| 注释 | Note | 注释框 | 补充说明 | 增强可读性 |
状态图

| 组成部分 | 英文 | 图形特征 | 含义 | 作用 |
|---|---|---|---|---|
| 初始状态 | Initial State | 实心圆 | 状态机开始 | 表示对象初始状态 |
| 状态 | State | 圆角矩形 | 对象在某一时刻的稳定情况 | 表示对象当前所处阶段 |
| 转换 | Transition | 带箭头的实线 | 状态之间的切换关系 | 表示状态变化方向 |
| 事件 | Event | 标注在线上 | 触发状态变化的条件/动作 | 使状态发生转换 |
| 守卫条件 | Guard Condition | [条件] |
转换发生的限制条件 | 控制是否允许切换 |
| 动作 / 行为 | Action / Activity | /动作 |
状态变化时执行的操作 | 表示附带行为 |
| 终止状态 | Final State | 空心圆外包实心圆 | 状态机结束 | 表示生命周期终止 |
| 自转换 | Self Transition | 指向自己的箭头 | 状态保持不变但发生内部变化 | 表示同一状态下的处理 |
| 复合状态 | Composite State | 包含子状态的大状态框 | 一个状态内部再细分多个状态 | 表示复杂状态结构 |
| 子状态 | Substate | 复合状态中的内部状态 | 大状态中的细分状态 | 细化状态过程 |
结构化设计 vs 面向对象设计
| 对比项 | 结构化设计 | 面向对象设计 |
|---|---|---|
| 核心 | 功能 | 对象 |
| 基本单位 | 模块 | 类 / 对象 |
| 设计方式 | 自顶向下分解 | 对象抽象建模 |
| 数据和操作 | 分离 | 封装 |
| 典型工具 | DFD、结构图 | UML |
| 优势 | 流程清晰 | 维护扩展强 |
| 劣势 | 扩展性较弱 | 前期设计复杂 |
| 适合 | 小型流程型系统 | 中大型复杂系统 |
“4+1”视图模型
| 视图 | 关注点 | 面向对象 | 主要内容 | 常用图 | 功能描述 |
|---|---|---|---|---|---|
| 逻辑视图(Logical View) | 系统功能 | 用户、开发人员 | 系统功能模块、类、对象关系 | 类图、对象图 | 描述系统“做什么” |
| 开发视图(Development View) | 软件组织结构 | 程序员 | 模块划分、包结构、组件结构 | 包图、组件图 | 描述系统“如何开发” |
| 进程视图(Process View) | 并发与通信 | 系统集成人员 | 进程、线程、通信机制 | 时序图、活动图 | 描述系统“如何运行” |
| 物理视图(Physical View) | 硬件部署 | 运维人员 | 节点部署、网络结构 | 部署图 | 描述系统“部署到哪里” |
| 场景视图(Scenario / Use Case View) | 系统场景 | 用户、测试人员 | 用例、业务流程 | 用例图、时序图 | 描述系统“如何使用” |
软件质量
指软件产品在功能、性能、可靠性、安全性、可维护性、易用性等方面满足用户需求和规定要求的程度。

软件质量核心概念总表
| 概念 | 含义 | 关键词 |
|---|---|---|
| 软件质量 | 软件满足需求和规范的程度 | 满足需求、符合标准 |
| 软件缺陷(Bug) | 软件中存在的问题 | 错误、异常 |
| 软件错误(Error) | 人在开发中产生的错误行为 | 人为失误 |
| 软件故障(Fault/Defect) | 程序中存在的缺陷 | 代码/设计问题 |
| 软件失效(Failure) | 软件运行时表现出错误结果 | 运行出错 |
| 软件可靠性 | 软件在规定条件下、规定时间内无故障运行的能力 | 稳定 |
| 软件可维护性 | 软件修改和维护的难易程度 | 好改、好扩展 |
| 软件可用性 | 系统能够正常运行的时间比例 | 好用 |
| 软件安全性 | 软件防止非法访问、攻击、数据泄露的能力 | 安全防护 |
软件质量特性
| 质量特性 | 含义 | 举例 |
|---|---|---|
| 功能性 | 软件是否具备所需功能 | 登录、查询、导出是否完整 |
| 可靠性 | 软件是否稳定、少出错 | 系统长时间运行不崩溃 |
| 易用性 | 用户是否容易学会和使用 | 页面清晰、操作简单 |
| 效率(性能) | 软件运行效率如何 | 响应快、占用资源少 |
| 可维护性 | 是否容易修改和维护 | 好排错、好扩展 |
| 可移植性 | 是否容易迁移到其他环境 | Windows能跑,Linux也能跑 |
系统度量指标分类
| 类别 | 主要衡量什么 | 常见指标 |
|---|---|---|
| 性能指标 | 快不快、扛不扛得住 | 响应时间、吞吐量、并发数 |
| 可靠性指标 | 稳不稳定 | 故障率、MTTF、MTBF |
| 可用性指标 | 能不能正常提供服务 | 可用率、在线率 |
| 可修改性指标 | 好不好修、好不好改 | MTTR、缺陷修复时间 |
| 安全性指标 | 安不安全 | 漏洞数、攻击拦截率 |
| 质量指标 | 软件本身质量高不高 | 缺陷密度、测试覆盖率 |
| 资源利用指标 | 资源消耗大不大 | CPU、内存、磁盘、带宽 |
性能
性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
(1)同时支持1000并发;
(2)响应时间小于1s;
(3)显示分辨率达到4K。
| 指标 | 含义 | 单位/表示方式 | 趋势 | 举例 |
|---|---|---|---|---|
| 响应时间(Response Time) | 用户发出请求到系统返回结果所需时间 | ms、s | 越小越好 | 点击查询后 2 秒出结果 |
| 延迟(Latency) | 请求发出到开始响应之间的等待时间 | ms | 越小越好 | 页面点击后卡顿 300ms |
| 吞吐量(Throughput) | 单位时间内系统处理的请求数量 | 次/秒、MB/s | 越大越好 | 每秒处理 100 个请求 |
| 并发用户数(Concurrent Users) | 同时访问系统的用户数量 | 人/连接数 | 越大越好 | 支持 1000 人同时在线 |
| TPS | 每秒处理的事务数 | 次/秒 | 越大越好 | 每秒处理 300 笔订单 |
| QPS | 每秒处理的查询请求数 | 次/秒 | 越大越好 | 每秒查询 500 次 |
| 带宽(Bandwidth) | 单位时间内可传输的数据量 | Mbps、Gbps | 越大越好 | 100Mbps 网络传输 |
| 资源利用率 | 系统运行时对 CPU/内存/磁盘等资源的占用情况 | % | 适中最好 | CPU 使用率 70% |
| 容量(Capacity) | 系统可支持的最大业务规模 | 用户数、数据量等 | 越大越好 | 最多支持 10 万用户 |
| 负载能力(Load Capacity) | 系统在高访问压力下的承载能力 | 请求量/并发量 | 越强越好 | 高峰期仍能正常访问 |
可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
(1)主服务器故障,1分钟内切换至备用服务器;
(2)系统故障,1小时内修复;
(3)系统支持7X24小时工作。
可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
例如:
(1)更改系统报表模块,必须在2人周内完成;
(2)对Web界面风格进行修改,修改必须在4人月内完成;
安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性[信息不泄露给未授权的用户】、完整性【防止信息被篡改】、不可否认性[不可抵赖]及可控性【对信息的传播及内容具有控制的能力]等特性。
例如:
(1)可抵御SQL注入攻击;
(2)对计算机的操作都有完整记录;
(3)用户信息数据库授权必须保证99.9%可用
伪代码
介于自然语言和程序设计语言之间的算法描述方法。
| 特点 | 说明 |
|---|---|
| 不受具体语言限制 | 不依赖 Java / C / Python |
| 表达清晰 | 逻辑比自然语言更明确 |
| 易于转换为代码 | 可直接作为编程思路 |
| 强调算法逻辑 | 不强调具体语法细节 |
| 类别 | 常见关键字 | 含义 |
|---|---|---|
| 开始结束 | BEGIN、END |
程序开始和结束 |
| 输入输出 | INPUT、OUTPUT |
输入和输出 |
| 条件判断 | IF、THEN、ELSE |
条件分支 |
| 多分支 | ELSE IF |
多条件判断 |
| 循环 | FOR、TO、DO |
计数循环 |
| 条件循环 | WHILE、DO |
条件成立时循环 |
| 先执行后判断 | REPEAT、UNTIL |
至少执行一次 |
| 结束控制 | ENDIF、ENDFOR、ENDWHILE |
结束控制结构 |
| 逻辑运算 | AND、OR、NOT |
逻辑判断 |
| 比较运算 | =、<>、>、<、>=、<= |
比较条件 |
| 顺序步骤 | 内容 |
|---|---|
| 1 | 推车入锁 |
| 2 | 读取车号 |
| 3 | 提示刷卡 |
| 4 | 读取借车信息 |
| 5 | 计算还车时间 |
| 6 | 更新还车信息 |
| 7 | 提示成功 |
BEGIN
IF 自行车已推入锁止器 THEN
读取车号
提示用户刷卡
IF 用户刷卡成功 THEN
读取卡片中的借车信息
计算还车时间
IF 还车时间 > 1小时 THEN
扣除1元
ELSE
不扣费
ENDIF
更新还车信息到数据中心
提示“还车成功”
ELSE
提示“还车失败”
ENDIF
ELSE
提示“还车失败”
ENDIF
END
程序流程图
用图形符号和箭头来表示算法或程序执行流程的一种图示方法。、
| 符号 | 名称 | 作用 |
|---|---|---|
| 椭圆 | 开始/结束框 | 表示流程开始或结束 |
| 矩形 | 处理框 | 表示计算、赋值、处理步骤 |
| 平行四边形 | 输入/输出框 | 表示输入数据或输出结果 |
| 菱形 | 判断框 | 表示条件判断 |
| 箭头线 | 流程线 | 表示执行方向 |
| 圆圈(连接点) | 连接符 | 用于连接断开的流程线 |
软件测试
黑盒测试与白盒测试
| 对比项 | 黑盒测试(Black-box Testing) | 白盒测试(White-box Testing) |
|---|---|---|
| 定义 | 不关心程序内部结构,只检查输入与输出是否正确 | 了解程序内部结构,检查代码逻辑是否正确 |
| 测试角度 | 从用户功能需求角度测试 | 从程序内部实现角度测试 |
| 是否关注代码 | 否 | 是 |
| 是否需要懂程序结构 | 不需要 | 需要 |
| 核心目标 | 验证软件“功能对不对” | 验证软件“逻辑有没有问题” |
| 测试依据 | 需求说明书、功能设计文档 | 程序代码、逻辑结构、流程图 |
| 测试对象 | 功能、界面、输入输出、业务流程 | 语句、分支、条件、路径、循环 |
| 常见使用阶段 | 系统测试、验收测试、功能测试 | 单元测试、代码测试 |
| 主要发现的问题 | 功能错误、界面错误、输入输出错误、业务流程错误 | 逻辑错误、分支遗漏、条件判断错误、死循环、冗余代码 |
| 测试人员 | 测试人员、用户 | 开发人员、测试人员 |
| 优点 | 接近用户使用场景;容易发现功能问题;不依赖代码实现 | 能深入检查程序逻辑;覆盖代码内部错误;有助于提高代码质量 |
| 缺点 | 不能发现隐藏在代码内部的逻辑错误;覆盖不够深入 | 难以发现需求遗漏和功能缺失;测试工作量较大 |
| 适合测试什么 | 登录、注册、支付、查询、页面跳转等功能 | if判断、循环、异常处理、接口逻辑、算法逻辑 |
| 典型问题举例 | 登录按钮点击后无反应;输入正确账号却无法登录 | if 条件写错;某个分支永远执行不到;循环条件错误 |
黑盒测试常用方法表
| 方法 | 含义 | 适用场景 | 例子 |
|---|---|---|---|
| 等价类划分法 | 把输入数据划分成若干类,每类选一个代表测试 | 输入范围类问题 | 年龄要求 1~100,可分有效类和无效类 |
| 边界值分析法 | 重点测试边界附近的数据 | 容易在边界出错的场景 | 年龄 1~100,测 0、1、2、99、100、101 |
| 判定表法 | 针对多个条件组合情况设计测试 | 复杂业务规则判断 | 用户登录且余额足够才能支付 |
| 错误推测法 | 根据经验猜测容易出错的地方 | 实际业务测试中很常用 | 空值、超长字符、特殊字符 |
| 场景法 | 按真实业务流程设计测试 | 业务流程测试 | 下单流程:选商品→提交→支付→查看订单 |
等价类划分法
- 如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值或大于最大值)。
- 如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类。
- 如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值)。
- 如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各种不同角度违反规则)。
- 如果规定了输入数据为整型,则可以划分出正整数、零和负整数3个有效类。
- 如果程序的处理对象是表格,则应该使用空表,以及含一项或多项的表。
边界值分析法
边界值的选择原则标准(2点法):最小值、最大值。
强健壮(5点/7点法):
白盒测试常用方法表
| 方法 | 含义 | 检查重点 | 特点 |
|---|---|---|---|
| 语句覆盖 | 程序中每条语句至少执行一次 | 每一行代码是否被执行 | 覆盖最基础 |
| 判定覆盖(分支覆盖) | 每个判断的真/假分支都至少执行一次 | if、switch 等分支 | 比语句覆盖更强 |
| 条件覆盖 | 每个条件表达式中的每个条件都至少取一次真和假 | 复合条件判断 | 更细致 |
| 判定/条件覆盖 | 同时满足判定覆盖和条件覆盖 | 分支 + 条件 | 覆盖更全面 |
| 路径覆盖 | 程序中所有可能执行路径都至少执行一次 | 所有执行路线 | 覆盖最强,但最难实现 |
测试用例模板
| 用例编号 | 测试功能 | 输入数据 | 操作步骤 | 预期结果 |
|---|---|---|---|---|
| TC001 | 正常情况 | 合法输入 | 按要求操作 | 操作成功 |
| TC002 | 空值情况 | 输入为空 | 执行操作 | 提示不能为空 |
| TC003 | 下界外 | 最小值-1 | 执行操作 | 提示输入不合法 |
| TC004 | 下界值 | 最小值 | 执行操作 | 操作成功 |
| TC005 | 上界值 | 最大值 | 执行操作 | 操作成功 |
| TC006 | 上界外 | 最大值+1 | 执行操作 | 提示输入不合法 |
| TC007 | 特殊字符 | 非法字符 | 执行操作 | 提示格式错误 |
五、数据结构与算法
线性结构:数组、链表、栈、队列。
非线性结构:树(二叉树、B树)、图(邻接矩阵、邻接表)。
常见算法:排序(快速排序、归并排序)、查找(二分查找)、动态规划、贪心算法。
算法的五个基本特性
| 特性 | 含义 |
|---|---|
| 有穷性 | 算法必须在有限步骤内结束 |
| 确定性 | 每一步都有明确含义,不能模糊 |
| 可行性 | 每一步都可以通过基本操作实现 |
| 输入 | 可以有 0 个或多个输入 |
| 输出 | 至少有 1 个输出结果 |
常见数据结构
| 数据结构 | 逻辑结构 | 存储特点 | 典型操作 | 典型应用 |
|---|---|---|---|---|
| 数组 | 线性 | 顺序存储 | 按下标访问 | 表格、矩阵 |
| 链表 | 线性 | 链式存储 | 插入删除 | 动态数据 |
| 栈 | 线性 | 顺序/链式 | 后进先出 | 函数调用、括号匹配 |
| 队列 | 线性 | 顺序/链式 | 先进先出 | 排队、任务调度 |
| 串 | 线性 | 字符序列 | 匹配、查找 | 文本处理 |
| 树 | 树形 | 非线性 | 查找、遍历 | 目录结构 |
| 图 | 图状 | 非线性 | 路径、连通性 | 地图、网络 |
| 哈希表 | 集合/映射 | 散列存储 | 快速查找 | 字典、缓存 |
时间复杂度
O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2ⁿ) < O(n!)
二分查找:O(logn)
冒泡 / 选择 / 插入排序:O(n²)
快速 / 归并 / 堆排序:O(nlogn)
穷举:O(2ⁿ)
线性表
- 顺序表(数组)
优点:随机访问快,查找 O (1)
缺点:插入删除要移动元素,O(n) - 链表
单链表、双链表、循环链表
优点:插入删除O(1)(已知位置)
缺点:不能随机访问,查找 O (n)
栈与队列
栈 Stack
先进后出 FILO
应用:函数调用栈、括号匹配、表达式求值、递归、浏览器后退
队列 Queue
先进先出 FIFO
应用:任务排队、消息队列、缓冲区
特殊:循环队列(解决假溢出)
树与二叉树
基本概念
- 结点:树的基本组成单位,包含数据和指向子树的指针。
- 度:结点的子树数量。二叉树中结点的度不超过2。
- 叶子结点:度为0的结点(无子树)。
- 深度:根结点到该结点的路径长度(根深度为0或1,定义需统一)。
- 高度:该结点到最远叶子结点的路径长度(叶子高度为0或1,与深度定义一致)。
- 层次:根为第1层(或第0层),逐层递增。
- 二叉树:每个结点最多有2个子树(左子树和右子树)。
二叉树性质
- 第i层最多结点数: 2 i − 1 2^{i-1} 2i−1(i≥1)。
- 深度为h的满二叉树结点总数: 2 h − 1 2^h - 1 2h−1。
- 叶子结点与度2结点关系: n 0 = n 2 + 1 n_0 = n_2 + 1 n0=n2+1( n 0 n_0 n0为叶子数, n 2 n_2 n2为度2结点数)。
二叉树遍历
- 前序遍历:根 → 左子树 → 右子树。
- 中序遍历:左子树 → 根 → 右子树。
- 后序遍历:左子树 → 右子树 → 根。
- 层次遍历:按层从上到下、从左到右访问。
- 考点:已知前序+中序或后序+中序,可唯一确定二叉树结构。
二叉查找树(BST)
- 性质:左子树所有结点值 < 根结点值 < 右子树所有结点值。
- 操作复杂度:查找、插入、删除的平均时间复杂度为 O ( log n ) O(\log n) O(logn),最坏 O ( n ) O(n) O(n)(退化为链表)。
平衡二叉树(AVL)
- 性质:任意结点的左右子树高度差绝对值不超过1。
- 优势:保证查找、插入、删除的最坏时间复杂度为 O ( log n ) O(\log n) O(logn)。
- 调整操作:通过旋转(左旋、右旋)维护平衡。
哈夫曼树(Huffman)
- 定义:带权路径长度(WPL)最小的二叉树,用于数据压缩。
- 构造方法:每次选择权值最小的两个结点合并,直到只剩一棵树。
- 应用:哈夫曼编码(无前缀编码),高频字符用短编码,低频用长编码。
公式与代码示例
- 满二叉树结点总数:
N = 2 h − 1 N = 2^h - 1 N=2h−1 - 哈夫曼树WPL计算:
W P L = ∑ ( w e i g h t i × p a t h L e n g t h i ) WPL = \sum (weight_i \times pathLength_i) WPL=∑(weighti×pathLengthi)
# 二叉树结点定义
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
图
基本概念
有向图 / 无向图
- 有向图:边有方向,表示为有序对 ((u, v))。
- 无向图:边无方向,表示为无序对 ({u, v})。
顶点与边
- 顶点(结点):图的基本元素。
- 边:顶点之间的连接关系。
度、入度、出度
- 度(无向图):与顶点相连的边数。
- 入度(有向图):指向该顶点的边数。
- 出度(有向图):从该顶点出发的边数。
连通图与强连通图
- 连通图(无向图):任意两顶点间存在路径。
- 强连通图(有向图):任意两顶点双向可达。
完全图
- 任意两顶点间均有边,无向完全图边数为 (\frac{n(n-1)}{2}),有向完全图为 (n(n-1))。
存储结构
邻接矩阵
- 二维数组 (A[i][j]) 表示顶点 (i) 到 (j) 的边(权重或存在性)。
- 优点:快速查询边;缺点:空间复杂度 (O(n^2)),稀疏图效率低。
邻接表
- 数组+链表:数组索引代表顶点,链表存储邻接顶点。
- 优点:节省空间((O(n+e)));缺点:查询边需遍历链表。
图的遍历
DFS(深度优先)
- 递归或显式栈实现,沿一条路径深入到底再回溯。
- 应用:拓扑排序、连通分量检测。
BFS(广度优先)
- 队列实现,按层遍历,先访问所有邻接顶点。
- 应用:最短路径(无权图)、层级分析。
经典算法
最小生成树
- Prim算法:贪心策略,从起点逐步扩展最小边,适合稠密图。
- Kruskal算法:按边权排序,依次选择不形成环的边,适合稀疏图。
最短路径
- Dijkstra:单源最短路径,贪心+优先队列,不适用负权边。
- Floyd:多源最短路径,动态规划(三重循环),可处理负权(无负环)。
拓扑排序
- 适用于有向无环图(DAG),按入度为零的顶点顺序输出,判断工程依赖或环路。
常见查找算法
- 顺序查找
| 项目 | 内容 |
|---|---|
| 思想 | 从头到尾一个一个找 |
| 时间复杂度 | O(n) |
| 特点 | 简单,但慢 |
- 二分查找
| 项目 | 内容 |
|---|---|
| 思想 | 每次取中间元素比较 |
| 前提 | 数据必须有序 |
| 时间复杂度 | O(log n) |
| 特点 | 很快 |
常见排序算法
| 排序算法 | 基本思想 | 时间复杂度(平均) | 稳定性 | 特点 |
|---|---|---|---|---|
| 冒泡排序 | 相邻比较,大的往后冒 | O(n²) | 稳定 | 简单 |
| 选择排序 | 每次选最小/最大 | O(n²) | 不稳定 | 交换次数少 |
| 插入排序 | 插入到已排序序列合适位置 | O(n²) | 稳定 | 小规模数据好用 |
| 希尔排序 | 分组插入排序 | O(n^1.3~2) | 不稳定 | 插入排序改进 |
| 快速排序 | 选基准分区 | O(n log n) | 不稳定 | 实际中常用 |
| 归并排序 | 分治后合并 | O(n log n) | 稳定 | 适合大数据 |
| 堆排序 | 利用堆结构排序 | O(n log n) | 不稳定 | 空间效率好 |
| 计数排序 | 统计次数排序 | O(n+k) | 稳定 | 适合整数范围小 |
| 基数排序 | 按位排序 | O(d(n+r)) | 稳定 | 适合位数固定整数 |

六、信息安全
信息安全三要素
| 要素 | 含义 | 举例 |
|---|---|---|
| 保密性 | 信息不能泄露给无关人员 | 密码不能被别人看到 |
| 完整性 | 信息不能被非法修改或破坏 | 转账金额不能被篡改 |
| 可用性 | 合法用户需要时能正常使用系统 | 网站不能总是打不开 |
信息安全五大属性
| 属性 | 含义 |
|---|---|
| 保密性 | 不泄露 |
| 完整性 | 不篡改 |
| 可用性 | 能使用 |
| 可控性 | 使用过程可控制 |
| 可审查性(可追溯性) | 操作可记录、可追踪 |
常见信息安全威胁
| 威胁类型 | 定义 / 含义 | 主要危害 | 典型特点 | 常见防范措施 |
|---|---|---|---|---|
| 计算机病毒 | 能自我复制、传播并破坏系统或数据的恶意程序 | 文件损坏、系统异常、数据丢失 | 传染性、隐蔽性、破坏性 | 杀毒软件、及时更新系统、不随意下载文件 |
| 木马(Trojan) | 伪装成正常程序,诱骗用户安装后偷偷执行恶意操作 | 窃取密码、远程控制、监控用户 | 伪装性强、隐蔽性高 | 不安装来历不明软件、开启安全防护 |
| 蠕虫(Worm) | 能通过网络自动传播的恶意程序 | 网络拥堵、系统瘫痪、快速扩散 | 传播快、范围广、危害大 | 打补丁、关闭不必要端口、网络隔离 |
| 后门(Backdoor) | 攻击者绕过正常认证机制留下的隐蔽入口 | 非法远程控制、长期潜伏入侵 | 隐蔽性强、持续控制 | 加强权限管理、代码审查、安全检测 |
| 勒索软件(Ransomware) | 通过加密文件或锁定系统勒索钱财的恶意程序 | 文件无法使用、数据被锁定、业务中断 | 破坏性强、勒索性质明显 | 数据备份、不点可疑链接、终端防护 |
| 钓鱼攻击(Phishing) | 伪装成正规网站、银行、客服等骗取用户敏感信息 | 账号被盗、资金损失、隐私泄露 | 欺骗性强、针对用户心理 | 核实网址、不乱点链接、不泄露验证码 |
| 社会工程学攻击 | 通过欺骗、诱导、套话等方式攻击“人”获取信息 | 密码泄露、内部信息泄露、权限被盗用 | 不直接攻系统,主要攻人 | 提高安全意识、加强培训、严格核验身份 |
| 拒绝服务攻击(DoS) | 通过大量无效请求使目标系统无法正常服务 | 网站瘫痪、服务中断 | 单一攻击源、耗尽资源 | 流量限制、防火墙、负载均衡 |
| 分布式拒绝服务攻击(DDoS) | 多个攻击源同时发起拒绝服务攻击 | 大规模服务中断、服务器崩溃 | 攻击规模更大、更难防御 | 高防服务、流量清洗、CDN、防火墙 |
| SQL 注入 | 在输入中插入恶意 SQL 语句,欺骗数据库执行非法操作 | 数据泄露、数据篡改、登录绕过 | 常发生在表单、接口、URL 参数 | 参数化查询、输入校验、最小权限原则 |
| XSS(跨站脚本攻击) | 在网页中注入恶意脚本,让其他用户访问时执行 | 窃取 Cookie、页面篡改、冒充操作 | 针对浏览器端、脚本注入 | 输入过滤、输出转义、HttpOnly、CSP |
| CSRF(跨站请求伪造) | 利用用户已登录状态,在其不知情下发起恶意请求 | 非法转账、非法操作、权限滥用 | 借用用户身份执行请求 | CSRF Token、验证 Referer、二次确认 |
| 暴力破解攻击 | 不断尝试密码组合,直到猜中正确密码 | 账号被盗、系统被非法登录 | 重复尝试、高频登录 | 验证码、限制次数、强密码、双因素认证 |
| 越权访问 | 用户访问了本不属于自己权限范围的资源或功能 | 数据泄露、功能滥用、权限失控 | 常见于接口和后台系统 | 后端权限校验、角色权限控制、接口鉴权 |
| 窃听攻击 | 非法监听网络通信内容,获取敏感信息 | 密码泄露、通信内容泄露 | 常见于明文传输 | 使用 HTTPS、VPN、加密通信 |
| 中间人攻击(MITM) | 攻击者拦截并篡改双方通信内容 | 数据泄露、数据篡改、身份伪造 | 通信被截获、双方不易察觉 | HTTPS、数字证书、加密通信 |
| 恶意代码 / 恶意脚本 | 包括脚本木马、自动执行脚本、恶意插件等 | 浏览器被控、数据泄露、页面篡改 | 隐蔽执行、依赖用户点击或页面加载 | 浏览器安全设置、脚本过滤、安全插件 |
| 密码泄露 | 因弱密码、重复密码、泄漏等导致账号信息暴露 | 账号被盗、数据被访问 | 常因用户习惯差导致 | 强密码、定期更换、双因素认证 |
| 内部人员泄密 | 内部员工故意或无意泄露敏感信息 | 商业秘密泄露、数据外流 | 难以防范、危害大 | 权限分级、日志审计、保密制度 |
| 误操作 / 人为失误 | 用户或管理员错误操作导致安全问题 | 数据删除、系统异常、配置错误 | 不是恶意,但后果严重 | 规范流程、培训、权限限制、备份恢复 |
加密技术
| 名称 | 本质 | 主要作用 | 是否可逆 | 是否需要密钥 | 是否属于对称 / 非对称 | 常用算法 / 技术 | 典型用途 |
|---|---|---|---|---|---|---|---|
| 对称加密 | 加密技术的一种 | 防止信息泄露 | 可逆 | 需要 | 对称 | AES、DES、3DES | 文件加密、数据库字段加密、数据传输 |
| 非对称加密 | 加密技术的一种 | 防止信息泄露 / 身份认证 / 密钥交换 | 可逆 | 需要(公钥+私钥) | 非对称 | RSA、ECC | HTTPS 密钥交换、身份认证、安全通信 |
| 摘要算法(哈希) | 数据摘要 / 指纹技术 | 校验数据是否被篡改 | 不可逆 | 一般不需要 | 都不是 | MD5、SHA-1、SHA-256 | 密码存储、文件完整性校验、数字签名前处理 |
| 数字签名 | 基于摘要算法 + 非对称加密的认证技术 | 证明身份 + 防篡改 + 防抵赖 | 不以“还原数据”为目的 | 需要(公钥+私钥) | 本质基于非对称加密 | RSA 签名、ECC 签名(如 ECDSA) | 电子签名、电子合同、身份验证、软件签名 |
| 数字证书 | 电子身份证明文件 | 证明公钥是谁的 | 不涉及可逆不可逆 | 依赖公钥体系 | 依赖非对称加密体系 | X.509 证书、CA 签发机制 | HTTPS 网站认证、服务器身份认证、建立信任 |
| 场景 | A 发送时用什么 | B 接收时用什么 | 核心目的 | 结果 |
|---|---|---|---|---|
| 保密通信 | B 的公钥加密 | B 的私钥解密 | 保密性 | 只有 B 能看懂 |
| 数字签名 | A 的私钥签名 | A 的公钥验证 | 身份认证 + 完整性 + 防抵赖 | 证明确实是 A 发的,且内容没被改 |
| 既保密又签名 | 先 A 的私钥签名,再用 B 的公钥加密 | 先 B 的私钥解密,再用 A 的公钥验证 | 保密 + 认证 + 防篡改 | 最完整、最安全 |
IDS / IPS
| 名称 | 全称 | 中文名称 | 核心作用 | 是否主动拦截 |
|---|---|---|---|---|
| IDS | Intrusion Detection System | 入侵检测系统 | 检测攻击并报警 | 否 |
| IPS | Intrusion Prevention System | 入侵防御系统 | 检测攻击并自动拦截 | 是 |
七、新技术与应用

云计算
通过网络按需提供计算资源(服务器、存储、软件等)的一种服务模式。
应用:政务云平台、一网通办、数据上云、弹性扩容、降低运维成本
云计算五大特点
| 特点 | 含义 |
|---|---|
| 按需自助服务 | 用户可以随时按需获取资源 |
| 广泛网络访问 | 通过网络随时随地访问 |
| 资源池化 | 资源集中管理,多用户共享 |
| 快速弹性伸缩 | 可根据需求快速扩展或缩减 |
| 可计量服务 | 按使用量收费(类似水电费) |
云计算关键技术
| 技术 | 作用 |
|---|---|
| 虚拟化技术 | 把一台物理机变成多台虚拟机(核心技术) |
| 分布式计算 | 多台机器协同处理任务 |
| 分布式存储 | 数据分散存储,提高可靠性 |
| 负载均衡 | 分担访问压力,提高性能 |
| 容器技术(Docker) | 轻量级应用运行环境 |
| 自动化运维 | 自动部署、扩展和管理 |
部署模式
| 类型 | 定义 | 特点 | 适用场景 |
|---|---|---|---|
| 公有云 | 向公众开放的云服务 | 成本低、资源共享 | 普通企业、个人 |
| 私有云 | 企业内部专用云 | 安全性高、可控性强 | 政府、银行 |
| 混合云 | 公有云 + 私有云 | 灵活、安全兼顾 | 大型企业 |
| 社区云 | 多个组织共享云 | 特定群体使用 | 行业联盟 |
云计算服务模式★
| 模式 | 全称 | 提供内容 | 用户负责 | 举例 | 记忆方式 |
|---|---|---|---|---|---|
| IaaS | Infrastructure as a Service | 提供基础设施(服务器、存储、网络) | 操作系统、应用等 | 云服务器 | 租硬件 |
| PaaS | Platform as a Service | 提供开发平台(运行环境、数据库) | 应用开发 | 应用开发平台 | 租平台 |
| SaaS | Software as a Service | 提供软件服务 | 只负责使用 | 在线办公、邮箱 | 租软件 |
大数据
大数据(Big Data):指数据规模巨大、类型复杂、增长速度快,传统数据库和传统数据处理工具难以高效存储、管理、处理和分析的数据集合。
场景:人口 / 交通 / 环保数据统计分析、决策支持、舆情监测、城市治理
大数据的核心特征
| 特征 | 英文 | 含义 |
|---|---|---|
| 海量性 | Volume | 数据量非常大,TB、PB、EB 级别 |
| 高速性 | Velocity | 数据产生和处理速度快,如实时日志、监控流 |
| 多样性 | Variety | 数据类型多:结构化、半结构化、非结构化 |
| 价值密度低 | Value | 原始数据很多,但真正有用的信息比例低 |
| 真实性 | Veracity | 数据质量参差不齐,存在噪声、重复、错误 |
大数据与传统数据处理的区别
| 对比项 | 传统数据处理 | 大数据处理 |
|---|---|---|
| 数据规模 | GB ~ TB | TB ~ PB ~ EB |
| 数据类型 | 结构化为主 | 结构化 + 半结构化 + 非结构化 |
| 处理方式 | 单机 / 小型服务器 | 分布式集群 |
| 数据库 | 关系型数据库 | 分布式存储 + NoSQL + 数据湖 |
| 处理模式 | 批处理为主 | 批处理 + 流处理 + 实时分析 |
| 扩展方式 | 垂直扩展(升级机器) | 水平扩展(加机器) |
大数据处理的基本流程
| 阶段 | 主要任务 | 核心内容 | 常见技术 / 工具 | 作用 |
|---|---|---|---|---|
| 1. 数据采集 | 获取原始数据 | 从不同来源收集数据,如业务系统、日志、传感器、网络等 | Flume、Kafka、Sqoop、Logstash、爬虫 | 把分散的数据收集起来 |
| 2. 数据存储 | 保存海量数据 | 将采集到的数据进行集中存储,支持后续处理与分析 | HDFS、HBase、Hive、MongoDB、Elasticsearch | 为大数据处理提供存储基础 |
| 3. 数据预处理 | 清洗和整理数据 | 对原始数据进行去重、纠错、补全、格式转换、过滤无效数据等 | ETL、Spark、Python、Hive | 提高数据质量,方便后续分析 |
| 4. 数据处理 / 计算 | 对数据进行运算分析 | 对海量数据进行统计、聚合、分类、计算、建模等 | MapReduce、Spark、Flink、Hive | 从数据中提取有价值的信息 |
| 5. 数据分析 / 挖掘 | 发现规律和价值 | 利用算法和模型进行趋势预测、关联分析、聚类分类、用户画像等 | Spark MLlib、Python、机器学习算法 | 挖掘数据背后的规律和价值 |
| 6. 数据展示 / 应用 | 输出分析结果 | 将结果通过报表、图表、可视化大屏、推荐系统等方式展示或应用 | ECharts、Tableau、Power BI、Superset | 支持决策、管理和业务应用 |
Hadoop 生态体系
Hadoop 是一个开源的 分布式存储和分布式计算框架,用于处理海量数据。把大任务拆成很多小任务,分给多台机器一起做。
Hadoop 三大核心组件
| 组件 | 作用 | 类比 |
|---|---|---|
| HDFS | 分布式存储 | 大仓库 |
| MapReduce | 分布式计算 | 干活的工人 |
| YARN | 集群资源管理 | 调度中心 |
HDFS
HDFS 是 Hadoop 的 分布式文件系统,用于存储海量数据。
| 特点 | 说明 |
|---|---|
| 高容错 | 数据多副本存储,机器坏了数据不容易丢 |
| 高吞吐 | 适合大文件批量读写 |
| 适合海量数据 | 可存储 TB/PB 级数据 |
| 低成本扩展 | 普通服务器即可搭建 |
HDFS 架构
NameNode 管目录,DataNode 管数据
| 角色 | 作用 |
|---|---|
| NameNode | 管理文件系统元数据(谁在哪) |
| DataNode | 实际存储数据块 |
| Secondary NameNode | 辅助 NameNode 做元数据检查点,不是热备 |
MapReduce
MapReduce 是 Hadoop 的 分布式计算模型,用于对海量数据进行并行处理。
| 特点 | 说明 |
|---|---|
| 并行处理 | 多台机器一起算 |
| 适合离线批处理 | 如日报、周报、月报统计 |
| 容错能力强 | 某台机器出错可重试 |
| 编程模型简单 | Map + Reduce |
YARN
YARN 是 Hadoop 的 资源调度和任务管理平台。
| 角色 | 作用 |
|---|---|
| ResourceManager | 统一管理集群资源 |
| NodeManager | 管理单台机器资源 |
| ApplicationMaster | 管理某个应用程序的执行 |
Hive
Hive 是建立在 Hadoop 上的 数据仓库工具,分布式,可以用类似 SQL 的方式处理大数据。Hive = 用 SQL 操作 HDFS 上的大数据。
| 对比项 | Hive | MySQL |
|---|---|---|
| 定位 | 数据仓库 | 关系型数据库 |
| 数据规模 | 海量数据 | 中小规模业务数据 |
| 查询速度 | 较慢 | 较快 |
| 使用场景 | 离线分析 | 事务处理 |
| 是否支持高并发事务 | 弱 | 强 |
HBase
HBase 是基于 HDFS 的 分布式列式 NoSQL 数据库。HBase 适合海量数据的快速随机读写。
| 对比项 | HBase | Hive |
|---|---|---|
| 类型 | NoSQL 数据库 | 数据仓库工具 |
| 查询方式 | API / 简单查询 | SQL 风格查询 |
| 处理模式 | 实时随机读写 | 离线批量分析 |
| 适合场景 | 在线查询 | 离线统计 |
Spark
Spark 是一个 快速的分布式计算框架,比传统 MapReduce 更高效。Spark = 内存计算引擎,速度快。
| 优势 | 说明 |
|---|---|
| 速度快 | 尽量在内存中计算 |
| 通用性强 | 支持批处理、流处理、机器学习、图计算 |
| 编程方便 | 支持 Java / Scala / Python / SQL |
| 生态丰富 | Spark SQL、Spark Streaming、MLlib、GraphX |
| 模块 | 作用 |
|---|---|
| Spark Core | 基础计算引擎 |
| Spark SQL | SQL 查询 |
| Spark Streaming | 流式处理 |
| MLlib | 机器学习 |
| GraphX | 图计算 |
Flink
Flink 是一个 流式优先的分布式计算框架,适合实时数据处理。Flink = 更强的实时计算框架。
| 特点 | 说明 |
|---|---|
| 实时性强 | 毫秒级、秒级处理 |
| 流批一体 | 流处理、批处理都支持 |
| 状态管理强 | 适合复杂实时业务 |
| 容错机制完善 | 支持检查点(Checkpoint) |
| 对比项 | Flink | Spark |
|---|---|---|
| 强项 | 实时流处理 | 批处理 + 微批流处理 |
| 实时性 | 更强 | 较强 |
| 延迟 | 更低 | 较高 |
| 典型场景 | 实时告警、实时计算 | 离线分析、综合计算 |
Kafka
Kafka 是一个 高吞吐量的分布式消息队列 / 消息中间件。Kafka 用来“传数据流”。
大数据预处理技术
| 分类 | 核心目的 | 关键词 |
|---|---|---|
| 数据清洗 | 提高数据质量 | 缺失值、异常值、去重、噪声处理 |
| 数据集成 | 多源数据统一、数据一致性处理 | ETL、数据融合、单位统一、编码规范 |
| 数据转换 | 数据格式转换 | 标准化、编码、离散化 |
| 数据规约 | 降低数据规模 | 降维、采样、压缩 |
| 数据标注 | 构建训练数据 | 标签、增强 |
| 数据平衡 | 提升模型效果 | 过采样、欠采样 |
人工智能★
是研究和开发用于 模拟、延伸和扩展人类智能 的理论、方法、技术及应用系统的一门技术科学。
核心目标:让机器具备感知、认知、决策、学习等智能行为,实现“机器替代部分脑力劳动"。
本质:对人类智能的模拟与扩展。
基础分类
机器学习:监督学习(分类 / 回归)、无监督学习(聚类 / 降维)、强化学习
深度学习:CNN(图像)、RNN/LSTM(文本 / 时序)、Transformer(大模型)
NLP:文本分类、情感分析、智能问答、机器翻译
CV:人脸识别、目标检测、OCR、视频监控
机器学习
| 分类 | 核心特点 | 理解方式 | 常见算法 | 应用场景 |
|---|---|---|---|---|
| 监督学习(Supervised Learning) | 用“已标注数据”训练模型 | 老师带着做题(有答案) | 线性回归、逻辑回归、决策树、SVM、KNN | 房价预测、垃圾邮件分类 |
| 无监督学习(Unsupervised Learning) | 数据“无标签”,发现隐藏结构 | 自己找规律(没答案) | K-Means、层次聚类、PCA | 用户分群、数据降维 |
| 半监督学习(Semi-supervised Learning) | 少量有标签 + 大量无标签 | 一部分有答案,一部分没有 | 自训练、图模型 | 图像识别、文本分类 |
| 强化学习(Reinforcement Learning) | 通过“奖励机制”学习决策 | 做对有奖励,做错受惩罚 | Q-learning、Deep Q Network(DQN) | 游戏AI、自动驾驶 |
深度学习
| 模型类型 | 全称 | 核心特点 | 适合数据类型 | 典型应用 |
|---|---|---|---|---|
| CNN | 卷积神经网络 | 擅长提取局部特征 | 图像、视频 | 人脸识别 |
| RNN | 循环神经网络 | 处理序列数据 | 时间序列、文本 | 语音识别 |
| LSTM | 长短期记忆网络 | 解决长期依赖问题 | 长文本、时间序列 | 机器翻译 |
| GRU | 门控循环单元 | LSTM简化版 | 序列数据 | NLP任务 |
| Transformer | —— | 基于注意力机制 | 文本、序列 | 大模型(GPT) |
| GAN | 生成对抗网络 | 生成数据 | 图像、音频 | AI绘画 |
| AutoEncoder | 自编码器 | 数据压缩/重构 | 任意数据 | 降维、去噪 |
| GNN | 图神经网络 | 处理图结构数据 | 社交网络、知识图谱 | 推荐系统 |
人工智能的基本特征
| 特征 | 含义 |
|---|---|
| 感知能力 | 能识别图像、声音、文字、环境信息 |
| 学习能力 | 能从数据中自动总结规律 |
| 推理能力 | 能进行判断、分析和逻辑推断 |
| 决策能力 | 能根据目标和环境做出选择 |
| 自适应能力 | 能根据新数据不断优化表现 |
| 交互能力 | 能与人进行自然语言或行为交互 |
人工智能的主要研究领域
| 领域 | 内容 | 例子 |
|---|---|---|
| 机器学习 | 让机器从数据中学习规律 | 垃圾邮件识别、推荐系统 |
| 深度学习 | 用多层神经网络学习复杂特征 | 人脸识别、自动驾驶 |
| 自然语言处理(NLP) | 让机器理解和生成语言 | 机器翻译、智能客服 |
| 计算机视觉(CV) | 让机器“看懂”图像和视频 | 图像识别、目标检测 |
| 语音识别 | 识别和处理人类语音 | 语音助手、语音输入 |
| 知识表示与推理 | 用规则、知识图谱表达和推理 | 专家系统、智能问答 |
| 机器人技术 | 感知、决策、控制、执行 | 服务机器人、工业机器人 |
| 专家系统 | 模拟专家决策能力 | 医疗诊断、故障分析 |
人工智能的核心流程
| 阶段 | 主要任务 | 通俗理解 |
|---|---|---|
| 1. 数据采集 | 收集训练数据 | 先“喂数据” |
| 2. 数据预处理 | 清洗、标注、转换数据 | 把数据“洗干净” |
| 3. 特征提取 / 表示 | 提取有用信息 | 找出“关键点” |
| 4. 模型训练 | 让算法从数据中学习 | 让机器“练习” |
| 5. 模型评估 | 测试模型效果 | 看机器“学得怎么样” |
| 6. 模型部署 | 上线到实际业务系统 | 真正投入使用 |
| 7. 持续优化 | 根据新数据不断改进 | 越用越聪明 |
主要技术
| 技术领域 | 核心内容 | 典型任务/应用 | 一句话 |
|---|---|---|---|
| 计算机视觉(CV) | 让计算机理解图像和视频信息 | 图像识别、目标检测、人脸识别 | 让机器“看懂” |
| 自然语言处理(NLP) | 让计算机理解和处理人类语言 | 文本分类、机器翻译、大语言模型 | 让机器“读懂” |
| 语音识别与合成 | 实现语音与文本之间的转换 | 语音识别(语音→文本)、语音合成(文本→语音) | 让机器“听说” |
物联网
主要技术
| 技术类别 | 主要技术 | 作用 | 典型应用 |
|---|---|---|---|
| 感知技术 | 传感器、RFID、二维码、摄像头、GPS | 采集外界信息,识别物体状态 | 智能家居、环境监测、物流追踪 |
| 网络通信技术 | Wi-Fi、蓝牙、ZigBee、NB-IoT、4G/5G、LoRa | 实现设备之间、设备与平台之间的数据传输 | 智能抄表、车联网、工业设备联网 |
| 数据处理技术 | 云计算、大数据、边缘计算、数据库 | 存储、分析、处理海量数据 | 智慧城市、工业监控、健康监测 |
| 应用技术 | 人工智能、自动控制、移动应用、平台软件 | 实现智能决策、自动控制和业务应用 | 智能安防、智能农业、智慧医疗 |
| 安全技术 | 身份认证、加密、防火墙、访问控制 | 保障设备、网络和数据安全 | 智能门锁、工业控制、金融支付 |
核心架构
感知层:传感器、RFID、摄像头、智能终端
网络层:5G、NB‑IoT、LoRa、WiFi、蓝牙
平台层:物联网平台、数据中台
应用层:智慧城市、智慧安防、智慧环保、智慧交通
政务场景
环境监测(PM2.5、水质)、智能井盖、智慧路灯、能耗监控
区块链
- 核心特性
去中心化、不可篡改、可追溯、共识机制、分布式账本、智能合约 - 政务应用
电子证照、电子合同、供应链溯源、政务数据存证、不动产登记
网络安全
- 前沿架构
零信任架构(Zero Trust):永不信任、始终验证(身份 + 权限 + 环境)
安全边界:防火墙、IDS/IPS、WAF、VPN
数据安全:加密、脱敏、访问控制、审计、数据防泄漏(DLP) - 政务重点
等保 2.0、数据安全法、个人信息保护法、网络安全法、零信任政务网
容器与微服务
- 核心技术
Docker:容器化、镜像、仓库
K8s(Kubernetes):容器编排、弹性伸缩、服务治理
微服务:拆分、API 网关、服务注册发现、熔断限流 - 政务价值
快速迭代、弹性扩容、故障隔离、多云部署、降低耦合
信创环境
信创环境(信息技术应用创新环境),是指基于国产自主可控的芯片、操作系统、数据库、中间件、应用软件及网络安全产品构建的全栈 IT 生态系统,核心是摆脱对国外技术的依赖,保障数据安全与供应链自主。
| 类别 | 传统环境 | 信创环境(常见) |
|---|---|---|
| CPU / 服务器 | Intel、AMD | 鲲鹏、飞腾、龙芯、海光 |
| 操作系统 | Windows Server、CentOS、Ubuntu | 银河麒麟、统信 UOS |
| 数据库 | MySQL、Oracle、SQL Server | 达梦、人大金仓、GaussDB、OceanBase |
| 中间件 | Tomcat、WebLogic、WebSphere | 东方通 TongWeb、宝兰德 BES、Apusic |
| 浏览器 | Chrome、Edge、IE | 360 信创版、奇安信、统信浏览器、麒麟浏览器 |
| 办公/插件环境 | Office、ActiveX、Windows 驱动 | 国产办公环境、国产插件/替代方案 |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐





所有评论(0)