💻 计算机与编程基础
什么是程序 · 什么是编程语言 · 二进制 · 编译与解释 · 常用术语表——零基础第一课
1. 什么是"程序"?计算机是怎么工作的?
计算机本质上是一个只会执行指令的机器。它只认识两种状态:通电(1)和断电(0)。
🍳 生活类比——做菜:菜谱就是"程序",你(CPU)照着菜谱一步一步执行:
第 1 步:洗菜 → 第 2 步:切菜 → 第 3 步:开火 → 第 4 步:下锅……
程序 = 菜谱(指令的集合);执行程序 = 照菜谱做菜;改程序 = 改菜谱。
第 1 步:洗菜 → 第 2 步:切菜 → 第 3 步:开火 → 第 4 步:下锅……
程序 = 菜谱(指令的集合);执行程序 = 照菜谱做菜;改程序 = 改菜谱。
所以:
- 程序:一条条指令按顺序组成的集合,告诉计算机"做什么、怎么做"
- CPU(中央处理器):执行指令的"厨师",它只懂机器指令(0 和 1)
- 内存(RAM):程序运行时的工作台,数据临时放这里(断电就没了)
- 硬盘:长期仓库,程序和数据存在这里(断电也不丢)
🎯 记住这三句话
- 程序 = 指令集合;写程序 = 写指令给计算机干
- 内存是工作台(快、临时),硬盘是仓库(慢、永久)
- 计算机底层只认 0 和 1,所有高级语言最终都要变成 0 和 1
2. 什么是二进制?为什么要学它?
我们平时用十进制:0~9,逢十进一。计算机用二进制:只有 0 和 1,逢二进一。
十进制 vs 二进制对照
十进制: 0 1 2 3 4 5 6 7 8 9 10
二进制: 0 1 10 11 100 101 110 111 1000 1001 1010
规律:十进制 10 = 1×10¹ + 0×10⁰
二进制 1010 = 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 8 + 0 + 2 + 0 = 10 ✓
为什么用二进制:电路只有"通/断"两种状态最可靠、最省电、最便宜。这就是计算机的世界。
基础单位:
- 1 位(bit)= 一个 0 或 1
- 1 字节(byte)= 8 位,可以表示 256 种状态(0~255)——一个英文字母占 1 字节,一个汉字占 2~3 字节
- 1KB = 1024 字节,1MB = 1024KB,1GB = 1024MB
🎯 需要掌握到什么程度?
- 会看:给一个二进制能算出十进制(面试偶尔考)
- 理解:为什么 int 范围是 -2147483648 ~ 2147483647(32 位,一半负数一半正数)
- 不用怕:日常工作 99% 用不到手算二进制,理解概念即可
3. 什么是编程语言?Java 属于哪种?
人和计算机沟通需要"翻译",编程语言就是人写的指令规范。按"离机器远近"分三层:
| 层级 | 举例 | 特点 |
|---|---|---|
| 机器语言 | 01001011… | CPU 直接执行,人没法写 |
| 低级语言 | 汇编(MOV AX, 1) | 接近机器,难写难读 |
| 高级语言 | Java / Python / C / Go | 像英语,人能读懂,需要"翻译"成机器码 |
翻译方式分两种:
- 编译型(C/C++/Go):先整体翻译成机器码文件,再执行——像"翻译好整本书再读";Java 是编译 + 解释/JIT 混合型:先编译成字节码,再由 JVM 解释执行、热点代码用 JIT 编译成本地码
- 解释型(Python/JS):边翻译边执行——像"同声传译"
📖 Java 的特殊之处:Java 编译后生成的不是机器码,而是字节码(.class 文件),再由 JVM(Java 虚拟机)解释执行。就像写了一份"世界通用菜谱",每个国家的厨师(JVM)都能照着做——这就是 Java"一次编写,到处运行"的原因。下一篇详细讲。
🎯 记住
- Java 是高级语言,先编译成字节码,再由 JVM 解释执行 + JIT 即时编译热点代码(所以既不是纯编译型也不是纯解释型)
- 编程语言只是工具,重点学"编程思维"(怎么把问题拆成步骤)
4. 新手必懂术语表(收藏)
| 术语 | 大白话解释 |
|---|---|
| 代码(Code) | 你写的程序文本,就是指令的"草稿" |
| 编译(Compile) | 把人类代码翻译成计算机能懂的格式 |
| 语法(Syntax) | 编程语言的"语法规则",写错就编译不过(类似中文语病) |
| Bug | 程序里的错误/漏洞,导致结果不对或崩溃 |
| 调试(Debug) | 找 Bug 和修 Bug 的过程 |
| IDE(集成开发环境) | 写代码的"Word",自带高亮/提示/运行(如 IntelliJ IDEA、Eclipse) |
| 终端(Terminal) | 黑窗口,敲命令的地方(Windows 叫 CMD/PowerShell) |
| 变量(Variable) | 存数据的"盒子",贴了名字标签 |
| 函数/方法(Method) | 一段有名字的代码块,可以反复调用(像"调料包") |
| 类(Class) | Java 的组织单位,代码都要放在类里(后面详细讲) |
| 框架(Framework) | 别人写好的半成品"模版工程",你填业务进去(如 Spring) |
| 数据库(Database) | 专门存数据、能快速查的"超级表格"(如 MySQL) |
| 服务器(Server) | 24 小时开机运行你程序的电脑(网站就跑在上面) |
✍️ 小练习(答对即可进入下一课)
- 1. 内存和硬盘的区别是什么?
- 2. 二进制 1101 等于十进制几?(提示:8+4+0+1)
- 3. Java 编译后生成的文件叫什么?谁负责执行它?
- 4. "程序"用一句话怎么定义?