JAVA EE初阶---DAY 1 计算机是如何工作的

本系列可作为 JAVAEE初阶学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!

系列文章目录

JAVA初阶---------已更完

JAVA数据结构---------已更完

数据库初阶----------已更完

JAVA EE初阶---DAY 1 计算机是如何工作的


目录

目录

系列文章目录

目录

前言

[第一章 计算机的发展历史](#第一章 计算机的发展历史)

[1.1 人类为什么需要计算机](#1.1 人类为什么需要计算机)

[1.2 算盘时代](#1.2 算盘时代)

[1.3 机械计算机时代](#1.3 机械计算机时代)

莱布尼兹计算器

[1.4 巴贝奇与分析机](#1.4 巴贝奇与分析机)

差分机

[分析机(Analytical Engine)](#分析机(Analytical Engine))

[1.5 真空管时代](#1.5 真空管时代)

Colossus(巨人一号)

ENIAC

[1.6 晶体管时代](#1.6 晶体管时代)

晶体管(Transistor)

[第二章 冯诺依曼体系结构](#第二章 冯诺依曼体系结构)

[Von Neumann Architecture](#Von Neumann Architecture)

[John Von Neumann](#John Von Neumann)

[2.1 计算机的四大组成部分](#2.1 计算机的四大组成部分)

CPU

存储器

输入设备

输出设备

[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)

[第八章 指令系统](#第八章 指令系统)

指令(Instruction)

指令组成

[第九章 CPU执行程序全过程](#第九章 CPU执行程序全过程)

Fetch

Decode

Execute

指令周期

[第十章 CPU主频到底是什么](#第十章 CPU主频到底是什么)

[第十一章 编程语言的发展](#第十一章 编程语言的发展)

第一代

第二代

第三代

[第十二章 编译器与解释器](#第十二章 编译器与解释器)

编译流程

[第十三章 操作系统的作用](#第十三章 操作系统的作用)

为什么需要操作系统

资源管理

硬件抽象

[第十四章 进程是什么](#第十四章 进程是什么)

Process

进程的本质

[第十五章 为什么程序员必须理解计算机原理](#第十五章 为什么程序员必须理解计算机原理)

总结

总结


前言

很多初学编程的人都会产生一个疑问:

我写的 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
↓

指令系统
↓

编程语言
↓

操作系统
↓

进程

现代计算机看起来极其复杂,但本质上仍然遵循冯诺依曼在上世纪提出的思想:

存储程序、顺序执行、二进制表示。

理解了这些内容,你就真正迈出了从"会写代码"到"理解计算机"的第一步。整个知识体系来源于你上传的《计算机是如何工作的》课程资料,并结合计算机组成原理进行了扩展与系统化整理。


总结

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

相关推荐
用户7508837061951 小时前
大二的我手写了一把内存锁,最后却败给了 MySQL 的 MVCC?
java
plainGeekDev1 小时前
Handler/Looper → Coroutines
android·java·kotlin
lulu12165440781 小时前
2026年-企业级大模型API网关实战指南: 微元算力聚合平台性能优化实测
java·人工智能·spring·性能优化·ai编程
ai_coder_ai1 小时前
如何在自动化脚本中实现定时操作?
java·前端·javascript
8Qi81 小时前
LeetCode 746:使用最小花费爬楼梯 —— 题解笔记
java·笔记·算法·leetcode·动态规划
用户298698530141 小时前
Java 操作 Word 文档:常见编辑功能实现
java·后端
Sunia2 小时前
《Agentx专栏》06-记忆系统:用Redis+Milvus给AI配上短期+长期双层记忆
java·架构
码不停蹄的玄黓2 小时前
线上CPU 100% 全流程排查步骤
java
天一生水water2 小时前
agent教程S01-Agent 最小循环教程整理
java·服务器·网络·agent