本系列可作为 JAVAEE初阶学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。
点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!
系列文章目录
目录
目录
[第一章 计算机的发展历史](#第一章 计算机的发展历史)
[1.1 人类为什么需要计算机](#1.1 人类为什么需要计算机)
[1.2 算盘时代](#1.2 算盘时代)
[1.3 机械计算机时代](#1.3 机械计算机时代)
[1.4 巴贝奇与分析机](#1.4 巴贝奇与分析机)
[分析机(Analytical Engine)](#分析机(Analytical Engine))
[1.5 真空管时代](#1.5 真空管时代)
[1.6 晶体管时代](#1.6 晶体管时代)
[第二章 冯诺依曼体系结构](#第二章 冯诺依曼体系结构)
[Von Neumann Architecture](#Von Neumann Architecture)
[John Von Neumann](#John Von Neumann)
[2.1 计算机的四大组成部分](#2.1 计算机的四大组成部分)
[2.2 速度与容量关系](#2.2 速度与容量关系)
[第三章 从电子开关开始理解CPU](#第三章 从电子开关开始理解CPU)
[3.1 机械继电器](#3.1 机械继电器)
[3.2 为什么使用二进制](#3.2 为什么使用二进制)
[第四章 逻辑门------计算机思考的基础](#第四章 逻辑门——计算机思考的基础)
[4.1 非门(NOT)](#4.1 非门(NOT))
[4.2 与门(AND)](#4.2 与门(AND))
[4.3 或门(OR)](#4.3 或门(OR))
[4.4 异或门(XOR)](#4.4 异或门(XOR))
[第五章 ALU------CPU的大脑](#第五章 ALU——CPU的大脑)
[5.1 半加器](#5.1 半加器)
[5.2 全加器](#5.2 全加器)
[5.3 八位加法器](#5.3 八位加法器)
[第六章 寄存器与RAM](#第六章 寄存器与RAM)
[6.1 寄存器](#6.1 寄存器)
[6.2 RAM](#6.2 RAM)
[第七章 控制单元CU](#第七章 控制单元CU)
[Control Unit](#Control Unit)
[第八章 指令系统](#第八章 指令系统)
[第九章 CPU执行程序全过程](#第九章 CPU执行程序全过程)
[第十章 CPU主频到底是什么](#第十章 CPU主频到底是什么)
[第十一章 编程语言的发展](#第十一章 编程语言的发展)
[第十二章 编译器与解释器](#第十二章 编译器与解释器)
[第十三章 操作系统的作用](#第十三章 操作系统的作用)
[第十四章 进程是什么](#第十四章 进程是什么)
[第十五章 为什么程序员必须理解计算机原理](#第十五章 为什么程序员必须理解计算机原理)
前言
很多初学编程的人都会产生一个疑问:
我写的 Java、Python、C++ 代码,计算机到底是怎么执行的?
为什么写下:
java
int a = 3;
int b = 5;
System.out.println(a + b);
计算机就能输出:
8
屏幕上的每一个字符、每一次鼠标点击、每一次游戏运行,背后到底发生了什么?
对于很多程序员来说,计算机就像一个"黑盒子":
- 输入代码
- 点击运行
- 得到结果
却不知道:
- CPU如何计算
- 内存如何存储
- 指令如何执行
- 操作系统如何调度
本文将从最底层开始,带你一步一步理解:
一个现代计算机究竟是如何工作的。
第一章 计算机的发展历史
1.1 人类为什么需要计算机
计算需求伴随着整个人类文明的发展。
例如:
- 商业记账
- 税收统计
- 军事计算
- 天文观测
- 工程设计
随着计算规模越来越大,人类开始发明各种辅助工具。
1.2 算盘时代
大约公元前2500年:
算盘已经出现。
它实际上是人类历史上最成功的计算工具之一。
特点:
- 不需要电
- 速度快
- 成本低
直到今天仍在部分场景使用。
1.3 机械计算机时代
莱布尼兹计算器
1694年
德国数学家:
戈特弗里德·莱布尼兹
发明:
Step Reckoner(步进计算器)
能够自动完成:
- 加法
- 减法
- 乘法
- 除法
这是机械计算机的重要里程碑。
1.4 巴贝奇与分析机
1822年
英国科学家:
查尔斯·巴贝奇
提出:
差分机
用于自动计算数学表格。
1830年代
巴贝奇进一步提出:
分析机(Analytical Engine)
这是历史上第一台真正意义上的:
通用计算机
它已经拥有:
- 输入
- 输出
- 存储
- 运算
甚至支持程序控制。
因此巴贝奇被称为:
计算机之父
1.5 真空管时代
1943年
英国:
Colossus(巨人一号)
诞生。
主要用于:
破解德国密码。
1945年
美国:
ENIAC
问世。
特点:
- 18000个真空管
- 重达30吨
- 功耗150KW
被认为:
第一台电子通用计算机
1.6 晶体管时代
1947年
贝尔实验室发明:
晶体管(Transistor)
意义:
替代真空管。
优点:
- 更小
- 更快
- 更稳定
- 更省电
计算机从此进入现代化发展阶段。
第二章 冯诺依曼体系结构
现代计算机几乎全部采用:
Von Neumann Architecture
即:
冯诺依曼体系。
由数学家:
John Von Neumann
提出。
被誉为:
- 现代计算机之父
- 博弈论之父
2.1 计算机的四大组成部分
CPU
中央处理器
负责:
- 运算
- 判断
存储器
负责:
- 保存程序
- 保存数据
包括:
- 内存
- 硬盘
输入设备
例如:
- 键盘
- 鼠标
- 摄像头
输出设备
例如:
- 显示器
- 音响
- 打印机
2.2 速度与容量关系
存储容量
硬盘 > 内存 > CPU缓存
访问速度
CPU缓存 > 内存 > 硬盘
因此:
CPU快但小
硬盘大但慢
第三章 从电子开关开始理解CPU
CPU本质上不是魔法。
它只是:
大量电子开关组成的系统
3.1 机械继电器
最早的电子开关:
Relay(继电器)
特点:
通电:
闭合
断电:
断开
只有两种状态。
刚好对应:
1
0
3.2 为什么使用二进制
因为电子设备天然适合表示:
有电 = 1
没电 = 0
所以计算机选择:
二进制
作为底层语言。
第四章 逻辑门------计算机思考的基础
逻辑门是CPU最基本的组成单位。
4.1 非门(NOT)
作用:
取反。
1 -> 0
0 -> 1
4.2 与门(AND)
规则:
1 AND 1 = 1
其余全部为0
4.3 或门(OR)
规则:
只要有一个1
结果就是1
4.4 异或门(XOR)
规则:
不同为1
相同为0
例如:
1 XOR 0 = 1
1 XOR 1 = 0
第五章 ALU------CPU的大脑
ALU:
Arithmetic Logic Unit
即:
算术逻辑单元。
负责:
- 加法
- 减法
- 比较
- 逻辑运算
5.1 半加器
实现:
两个bit相加
例如:
1 + 1
结果:
和 = 0
进位 = 1
5.2 全加器
支持:
三个bit相加。
包括:
A
B
进位输入
5.3 八位加法器
把多个全加器串联。
形成:
8位加法器
例如:
00000011
+
00000101
结果:
00001000
即:
3 + 5 = 8
第六章 寄存器与RAM
ALU会计算。
但是:
不会记忆。
所以需要存储器。
6.1 寄存器
寄存器:
Register
CPU内部最快的存储单元。
特点:
- 极快
- 极小
保存:
当前运算数据
6.2 RAM
Random Access Memory
随机访问存储器。
特点:
可随机访问
访问时间:
O(1)
这也是:
数组下标访问O(1)
的硬件基础。
第七章 控制单元CU
CPU不仅要会算。
还要知道:
算什么
这就是CU的职责。
Control Unit
控制单元。
作用:
指挥ALU工作。
例如:
先读取数据
再执行加法
最后保存结果
第八章 指令系统
CPU只认识:
指令(Instruction)
例如:
LOAD
STORE
ADD
指令组成
一条指令:
操作码Opcode
+
操作数Operand
例如:
LOAD A
表示:
读取数据到A寄存器
第九章 CPU执行程序全过程
CPU运行程序的核心循环:
Fetch
取指令
Decode
解析指令
Execute
执行指令
形成:
取指
↓
译码
↓
执行
↓
取下一条
无限循环。
这就是:
指令周期
第十章 CPU主频到底是什么
例如:
3.5GHz
表示:
35亿次时钟震荡/秒
很多人误解:
3.5GHz = 35亿条指令
实际上:
并不完全正确。
因为:
一条指令可能需要多个时钟周期。
第十一章 编程语言的发展
第一代
机器语言
01001010
11010011
直接写0和1。
第二代
汇编语言
LOAD A
ADD B
STORE C
更容易理解。
第三代
高级语言
例如:
- C
- C++
- Java
- Python
第十二章 编译器与解释器
编译流程
以C语言为例:
C代码
↓
Compiler
↓
汇编代码
↓
Assembler
↓
机器码
↓
CPU执行
Java流程:
Java
↓
ByteCode
↓
JVM
↓
机器码
↓
CPU
第十三章 操作系统的作用
常见操作系统:
- Windows
- Linux
- macOS
- Android
- iOS
- 鸿蒙
为什么需要操作系统
如果没有操作系统:
程序必须直接控制:
- CPU
- 内存
- 硬盘
- 显卡
难度极高。
操作系统负责:
资源管理
例如:
- CPU调度
- 内存管理
- 文件管理
硬件抽象
让程序员无需关心硬件细节。
第十四章 进程是什么
运行中的程序:
称为
Process
进程。
例如:
打开:
QQ
微信
Chrome
会产生多个进程。
进程的本质
操作系统制造了一种假象:
每个程序都独占电脑
实际上:
CPU正在快速切换。
第十五章 为什么程序员必须理解计算机原理
很多程序员:
会写代码。
但不知道:
CPU怎么执行
内存怎么存储
程序怎么运行
这会导致:
- 性能问题无法定位
- 并发问题无法分析
- 底层原理难以理解
理解计算机组成原理后:
你会真正明白:
为什么数组访问快
为什么缓存重要
为什么CPU比内存快
为什么会出现死锁
为什么程序会崩溃
总结
本文从最底层的电子开关开始,一步一步搭建出完整计算机体系:
电子开关
↓
逻辑门
↓
ALU
↓
寄存器
↓
RAM
↓
控制单元CU
↓
CPU
↓
指令系统
↓
编程语言
↓
操作系统
↓
进程
现代计算机看起来极其复杂,但本质上仍然遵循冯诺依曼在上世纪提出的思想:
存储程序、顺序执行、二进制表示。
理解了这些内容,你就真正迈出了从"会写代码"到"理解计算机"的第一步。整个知识体系来源于你上传的《计算机是如何工作的》课程资料,并结合计算机组成原理进行了扩展与系统化整理。

总结
以上就是今天要讲的内容,本文简单记录了数据结构学习内容,仅作为一份简单的笔记使用,大家根据注释理解,您的点赞关注收藏就是对小编最大的鼓励!