DukeDuke
主页
关于我们
主页
关于我们
  • Java

    • Java基础

      • 内存与磁盘
      • 进制转换
      • 数据存储
      • Java基本数据类型
      • HashMap
      • Java四大引用
    • JVM

      • 认识JVM
      • JVM类加载器
      • 运行时数据区
      • 执行引擎
      • 本地方法接口
      • 本地方法库
      • JVM垃圾回收
      • JVM性能监控
      • JVM调优
    • 设计模式
      • 单例模式
      • 工厂模式
      • 策略模式
      • 适配器模式
      • 建造者模式
      • 原型模式
      • 装饰器模式
      • 代理模式
      • 外观模式
      • 享元模式
      • 组合模式
      • 桥接模式
    • Java多线程

      • Java 线程基础详解
      • Java 线程池详解
      • Java ThreadLocal 详解
      • Java volatile 详解
      • Java 线程间通信详解
      • Java 线程安全详解
      • Java 线程调度详解
      • Java 线程优先级详解

      • Java 线程中断详解
      • Java 线程死锁详解
    • Java反射
    • Java 面试题

      • Java 基础概念面试题
      • Java 面向对象编程面试题
      • Java 集合框架面试题
      • Java 多线程与并发面试题
      • JVM 与内存管理面试题
      • Java I/O 与 NIO 面试题
      • Java 异常处理面试题
      • Java 反射与注解面试题
      • Java Spring 框架面试题
      • Java 数据库与 JDBC 面试题
      • Java 性能优化面试题
      • Java 实际项目经验面试题
      • Java 高级特性面试题
      • Java 面试准备建议

计算机内存与磁盘

1. 内存(Memory)

1.1 什么是内存

内存(Memory),也称为主存储器(Main Memory)或随机存取存储器(RAM),是计算机中用于临时存储数据和程序指令的硬件设备。

内存的基本特性

  • 易失性(Volatile):断电后数据会丢失
  • 高速访问:访问速度比磁盘快数千倍
  • 随机存取:可以随机访问任意位置的数据,访问时间相同
  • 容量有限:相比磁盘,容量较小且价格较高
  • 直接与CPU交互:CPU只能直接访问内存中的数据

1.2 内存的分类

按用途分类

类型说明特点
RAM(随机存取存储器)可读可写的内存易失性,断电数据丢失
ROM(只读存储器)只能读取的内存非易失性,用于存储固件
Cache(高速缓存)CPU与内存之间的缓冲速度最快,容量最小

按技术分类

类型全称特点应用
DRAMDynamic RAM需要定期刷新,容量大,价格低主内存
SRAMStatic RAM不需要刷新,速度快,价格高CPU缓存
SDRAMSynchronous DRAM与系统时钟同步现代计算机主内存
DDRDouble Data Rate双倍数据传输率现代计算机主内存

1.3 内存的层次结构

速度:    快 ←──────────────────────────────→ 慢
容量:    小 ←──────────────────────────────→ 大
价格:    高 ←──────────────────────────────→ 低

CPU寄存器 → L1缓存 → L2缓存 → L3缓存 → 主内存(RAM) → 虚拟内存(磁盘)

各级存储的特点:

级别访问时间容量位置
CPU寄存器1个时钟周期几十到几百字节CPU内部
L1缓存2-4个时钟周期32-64 KBCPU内部
L2缓存10-20个时钟周期256 KB - 2 MBCPU内部
L3缓存20-40个时钟周期4-32 MBCPU内部或外部
主内存(RAM)100-300个时钟周期4-64 GB主板
虚拟内存(磁盘)数万到数十万个时钟周期数百GB到数TB硬盘

1.4 内存的工作原理

内存地址

  • 物理地址:内存中每个字节都有唯一的物理地址
  • 逻辑地址:程序使用的虚拟地址,由操作系统映射到物理地址
  • 地址空间:32位系统可寻址 2³² = 4 GB,64位系统可寻址 2⁶⁴

内存访问过程

1. CPU发出内存访问请求(包含地址)
2. 请求首先到达L1缓存
3. 如果L1未命中,检查L2缓存
4. 如果L2未命中,检查L3缓存
5. 如果L3未命中,访问主内存
6. 如果主内存未命中,访问虚拟内存(磁盘)
7. 数据逐级返回,并更新各级缓存

1.5 内存的作用

  1. 存储运行中的程序:程序代码和数据必须加载到内存才能执行
  2. 存储操作系统:操作系统内核和系统服务常驻内存
  3. 存储临时数据:程序运行过程中产生的临时变量和数据
  4. 缓存数据:提高数据访问速度,减少磁盘I/O

2. 磁盘(Disk)

2.1 什么是磁盘

磁盘(Disk),也称为硬盘(Hard Disk Drive, HDD)或存储设备,是计算机中用于永久存储数据和程序的硬件设备。

磁盘的基本特性

  • 非易失性(Non-Volatile):断电后数据不会丢失
  • 大容量:容量可达数TB,远大于内存
  • 价格低廉:单位容量的价格远低于内存
  • 访问速度慢:机械硬盘的访问速度比内存慢数千倍
  • 顺序存取为主:机械硬盘顺序访问比随机访问快得多

2.2 磁盘的分类

按技术分类

类型全称特点应用
HDDHard Disk Drive机械结构,容量大,价格低,速度慢大容量存储
SSDSolid State Drive电子结构,速度快,价格高,容量相对小系统盘、高性能需求
NVMe SSDNon-Volatile Memory ExpressPCIe接口,速度最快高性能工作站、服务器

性能对比

指标HDDSSDNVMe SSD
读取速度100-200 MB/s500-3000 MB/s3000-7000 MB/s
写入速度100-200 MB/s400-2500 MB/s2000-5000 MB/s
随机访问慢(毫秒级)快(微秒级)极快(微秒级)
容量大(1-20 TB)中(250 GB-4 TB)中(250 GB-4 TB)
价格低中高
寿命长中中

2.3 磁盘的结构

机械硬盘(HDD)结构

磁盘结构:
┌─────────────────────────────────────┐
│  磁头(Head)                        │
│    ↓                                │
│  ┌─────────────────────────────┐   │
│  │  磁道(Track)              │   │
│  │  ┌─────────────────────┐   │   │
│  │  │  扇区(Sector)      │   │   │
│  │  │  512字节或4KB        │   │   │
│  │  └─────────────────────┘   │   │
│  └─────────────────────────────┘   │
│        磁盘盘片(Platter)          │
└─────────────────────────────────────┘

关键概念:

  • 磁道(Track):磁盘上的同心圆
  • 扇区(Sector):磁道上的最小存储单位,通常为512字节或4KB
  • 柱面(Cylinder):所有盘片上相同半径的磁道组成的圆柱
  • 磁头(Head):读写数据的装置

固态硬盘(SSD)结构

SSD结构:
┌─────────────────────────────────────┐
│  控制器(Controller)                │
│  ┌─────────────────────────────┐   │
│  │  闪存芯片(NAND Flash)      │   │
│  │  ┌─────┐ ┌─────┐ ┌─────┐   │   │
│  │  │页   │ │页   │ │页   │   │   │
│  │  │4KB  │ │4KB  │ │4KB  │   │   │
│  │  └─────┘ └─────┘ └─────┘   │   │
│  │        块(Block)           │   │
│  └─────────────────────────────┘   │
└─────────────────────────────────────┘

关键概念:

  • 页(Page):SSD的最小读写单位,通常为4KB
  • 块(Block):由多个页组成,是擦除的最小单位
  • 控制器:管理数据读写、磨损均衡、错误纠正等

2.4 磁盘的工作原理

机械硬盘访问过程

1. 磁头移动到目标磁道(寻道时间,Seek Time)
2. 等待目标扇区旋转到磁头下方(旋转延迟,Rotational Latency)
3. 读取或写入数据(传输时间,Transfer Time)

访问时间组成:

  • 寻道时间:5-15毫秒(磁头移动到目标磁道)
  • 旋转延迟:2-8毫秒(等待扇区旋转到位)
  • 传输时间:取决于数据大小和传输速度

固态硬盘访问过程

1. 控制器接收访问请求
2. 直接访问目标页(无机械运动)
3. 读取或写入数据

访问时间:

  • 读取延迟:50-150微秒
  • 写入延迟:100-500微秒
  • 无寻道时间和旋转延迟

2.5 磁盘的作用

  1. 永久存储数据:操作系统、应用程序、用户文件等
  2. 虚拟内存:当物理内存不足时,使用磁盘作为虚拟内存
  3. 数据备份:长期保存重要数据
  4. 系统启动:存储操作系统,计算机启动时从磁盘加载

3. 内存与磁盘的区别

3.1 核心区别对比

特性内存(RAM)磁盘(Disk)
易失性易失性,断电数据丢失非易失性,断电数据保留
访问速度极快(纳秒级)较慢(毫秒级,SSD为微秒级)
容量较小(通常4-64 GB)很大(通常数百GB到数TB)
价格高(按GB计算)低(按TB计算)
访问方式随机存取,访问时间相同顺序存取为主(HDD)
物理位置主板上的内存插槽独立的存储设备
与CPU关系CPU直接访问需要通过内存中转
用途临时存储运行中的数据永久存储数据

3.2 数据流转过程

程序执行流程:
1. 程序存储在磁盘上
2. 启动时,程序被加载到内存
3. CPU从内存读取指令和数据
4. CPU执行指令,处理数据
5. 结果写回内存
6. 需要持久化时,数据从内存写入磁盘

4. 总结

4.1 核心要点

  1. 内存是临时存储:速度快但容量小,断电数据丢失
  2. 磁盘是永久存储:速度慢但容量大,断电数据保留
  3. 数据必须加载到内存才能执行:CPU只能直接访问内存
  4. 内存与磁盘需要配合工作:内存提供速度,磁盘提供容量
  5. 优化重点是减少磁盘I/O:使用缓存、缓冲区等技术

4.2 关键概念

  • 易失性 vs 非易失性:内存易失,磁盘非易失
  • 访问速度:内存纳秒级,磁盘毫秒级(SSD微秒级)
  • 存储层次:寄存器 → 缓存 → 内存 → 磁盘
  • 数据流转:磁盘 → 内存 → CPU → 内存 → 磁盘

至关重要!

最近更新:: 2025/12/29 11:07
Contributors: Duke
Next
进制转换