JWT
1. 🔑 JWT存储在哪里?
客户端存储:
- JWT 不存储在服务器端(这是JWT的特点之一)
- JWT由客户端(前端)负责存储,常见方式:
localStorage
- 持久化存储sessionStorage
- 会话存储Memory
- 内存存储(最安全,但刷新页面会丢失)HttpOnly Cookie
- 相对安全的方式
2025年8月25日大约 3 分钟
客户端存储:
localStorage
- 持久化存储sessionStorage
- 会话存储Memory
- 内存存储(最安全,但刷新页面会丢失)HttpOnly Cookie
- 相对安全的方式public class Singleton {
// volatile保证可见性和禁止指令重排
private static volatile Singleton instance;
public static Singleton getInstance() {
if (instance == null) { // 第一次检查 不加锁直接读,效率高
synchronized (Singleton.class) { // 加锁后再次检查,避免多个线程同时创建实例
if (instance == null) { // 第二次检查
instance = new Singleton();
}
}
}
return instance;
}
}
MySQL 的 Buffer Pool(缓冲池)是 InnoDB 存储引擎中最核心的内存区域,主要用于缓存磁盘上的数据页,加速数据读写。
类型 | 说明/作用 |
---|---|
数据页(Data Page) | 存储表的实际数据行 |
索引页(Index Page) | 存储 B+ 树索引节点 |
Undo 页 | 存储回滚日志,支持事务和 MVCC |
Change Buffer 页 | 缓存二级索引的变更操作,提升插入效率 |
自适应哈希索引 | 热点数据自动生成哈希索引,加速查询 |
锁信息 | 记录锁定信息,支持并发控制 |
数据字典信息 | 缓存表结构、索引结构等元数据 |
阶段 | 技术基础 | 存储技术 | 编程语言 | 特点 |
---|---|---|---|---|
第一代(1940s-1950s) | 电子管 | 鼠笼式延迟线、磁鼓 | 机器语言 | 体积大、功耗高、运算慢、I/O 很慢、可存储信息 |
第二代(1950s-1960s) | 晶体管 | 磁芯存储器 | 汇编语言 | 更小更快、更稳定、更省电 |
第三代(1960s-1970s) | 中小规模集成电路(SSI/MSI) | 磁芯/半导体混合 | 高级语言出现 | 操作系统问世,批处理多道 |
第四代(1970s-至今) | 大规模/超大规模集成电路(LSI/VLSI) | 半导体存储器 | C语言等高级语言广泛 | 微处理器诞生,计算机普及化,出现个人电脑、网络、AI |
M2M 类型 | 英文全称 | 含义解释 | 关键词/提示语 |
---|---|---|---|
机器对机器 | Machine to Machine | 设备之间自动通信,不需要人为干预 | 自动控制、数据交互 |
人对机器 | Man to Machine | 人类通过接口与设备交互 | 人工输入、控制命令 |
机器对人 | Machine to Man | 设备将信息反馈给人类 | 报警、状态提示 |
移动网络对机器 | Mobile to Machine | 通过移动网络远程控制或采集设备数据 | 无线通信、远程管理 |
特征 | 含义 | 关键点 | 举例 | 实现方式 |
---|---|---|---|---|
并发性 | 系统允许多个程序同时存在,并交替执行 | 提高资源利用率、吞吐量 | 多个进程同时驻留内存 | 多道程序设计 |
共享性 | 多个进程可共同使用资源(资源复用) | 并发进程共享系统资源 | 多个进程共享打印机 | 资源统一管理 |
虚拟性 | 一个物理资源被“变成”多个逻辑资源,用户感觉“独占” | 逻辑 > 物理 | 虚拟内存、虚拟 CPU | 时分复用、空分复用 |
异步性 | 程序执行过程不可预期,按调度策略交替推进 | 非连续执行 | 一个进程执行到一半被切换 | 调度、切换机制 |
组合数 C(10,4) 表示从 10 个不同的元素中选出 4 个的不重复、无顺序的选法数。
C(n,k) = n! / (k! × (n - k)!)
所以:
C(10,4) = 10! / (4! × (10 - 4)!) = (10 × 9 × 8 × 7) / (4 × 3 × 2 × 1) = 5040 / 24 = 210
你不一定要写全阶乘,直接写:
C(10,4) = (10 × 9 × 8 × 7) / (4 × 3 × 2 × 1)
阶段 | 主要特点 | 使用场景举例 |
---|---|---|
人工管理阶段 | - 数据不保存 - 应用程序直接管理数据 - 数据面向应用 - 无独立性 |
最早期(如纸质记录、临时内存) |
文件系统管理阶段 | - 数据存放于文件 - 程序与数据有一定独立性 - 文件种类繁多 - 冗余高、共享差 |
早期计算机系统、C语言读写文件 |
数据库管理阶段 | - 结构化存储 - 数据共享性好,冗余低 - 数据独立性强 - 由 DBMS统一管理 |
现代企业信息系统、MIS 系统等 |
高级数据库管理阶段 | - 支持分布式、大数据、对象、图形、云原生等特性 - 支持复杂查询、事务与安全机制 |
云数据库、分布式数据库、图数据库等 |
阶段 | 名称 | 关键特点 | 示例/说明 |
---|---|---|---|
第一阶段 | ARPANET | 世界第一个分组交换网络 | 1969年,美国ARPA开发,连4台主机 |
第二阶段 | 三层结构网络 | 主干网 → 地区网 → 校园网 | 中国CERNET网络分为省、市、学校三级 |
第三阶段 | 多级ISP结构 | 顶级ISP↔二级ISP↔三级ISP | 家用宽带通过三级ISP接入互联网 |