1.1 Java 概述
Java 是一门 1995 年出生的高级编程语言,最大的本事是跨平台:你的程序只编译一次成"字节码",任何装了 JVM(Java 虚拟机)的设备——Windows、Mac、Linux、安卓——都能跑。口号:Write Once, Run Anywhere(一次编写,到处运行)。
1. Java 是什么:把 05 篇的"下指令"接上
你已经在计算机基础 05 篇知道:编程 = 给 CPU 写指令清单。Java 就是写这份清单用的语言之一——而且是全世界用得最多的语言之一:
- 全球数百万程序员在用(常年占据编程语言排行榜前三)
- 你手机里的安卓 App、银行的后台系统、淘宝这类网站的服务器端、Hadoop 这样的大数据平台,底层全是 Java
它 1995 年由 Sun 公司的 James Gosling(高斯林,"Java 之父")团队发布,2010 年 Sun 被 Oracle(甲骨文) 收购——所以现在下载 Java 认准 Oracle 官网(或开源版 OpenJDK)。
本来叫 Oak(橡树),注册时发现重名。团队喝着印尼爪哇(Java)岛产的咖啡想出了新名字——所以 Java 的 logo 是一杯冒着热气的咖啡,程序员圈也把 Java 当"咖啡"梗用。
2. 灵魂特性:跨平台(本节最重要的一节)
回忆06 篇的"方言困境":x86 和 ARM 指令集不同,给 Windows 编译的程序,Mac 和手机根本听不懂。C 语言的做法是每个平台重新翻译一遍。
Java 的解法别出心裁——造一台"虚拟机"当随身翻译官:
你写的代码 Hello.java(唯一一份)
↓ 编译器 javac 编译一次
字节码 Hello.class(中间语言,不是任何真 CPU 的方言)
↓ 分发到任何机器
各平台的 JVM(Windows 版 / macOS 版 / Linux 版……)
↓ JVM 现场翻译
对应 CPU 的机器码,跑起来
- 字节码(Bytecode):一种只给 JVM 看、不给真 CPU 看的"中间语言"
- JVM(Java Virtual Machine,Java 虚拟机):装在每个平台上的翻译官,把字节码现场翻成本地方言
- 于是你的程序永远只有一份,换平台只是换个 JVM——这就是"一次编译,到处运行"
05 篇说语言分"编译派"(C,提前译好)和"解释派"(Python,现场翻译)。Java 是混合派:先编译成字节码(拿到编译的好处),再由 JVM 解释/即时执行(拿到跨平台的好处)。两头的便宜它都想占,还都占到了——这是它统治企业级市场 30 年的根基。
3. 其他三个值得记住的特性
| 特性 | 大白话 | 呼应 |
|---|---|---|
| 面向对象 | 把代码组织成"物体"——先造模板(类),再按模板造实物(对象) | 后续章节细讲,现在混个脸熟 |
| 自动内存管理(GC) | 你只管申请内存用,用完的垃圾 Java 自己扫走,不用手动归还 | 06 篇讲过内存是程序的地盘;C 语言要手动还,忘了还就"内存泄漏" |
| 生态庞大 | 想干什么几乎都有现成的轮子:连数据库、发网络请求、做界面…… | 相当于装修有全屋定制,不用自己打家具 |
4. Java 能做什么 / 三大版本
Java 官方分三个版本,学 Java 的路只有一条:
- JavaSE(标准版):语言本身 + 核心库。本课程学的就是这个,也是 EE 和 Android 的地基
- JavaEE(企业版,现名 Jakarta EE):在 SE 上加"建服务器"的装备包——网站后端、微服务。找 Java 后端工作学的是这个方向
- JavaME(微型版):给老式功能机和机顶盒用的,已边缘化,了解即可
具体的应用场景:银行与电商后端(稳定、安全是 Java 的招牌)、Android 应用(安卓的原生开发语言之一)、大数据(Hadoop、Spark 生态起家于 Java/JVM)、企业内部系统(你将来接触的各类管理后台)。
5. Java 和 JavaScript 的关系:雷锋和雷峰塔
没有任何关系。 1995 年 Netscape 把刚出生的浏览器脚本语言起名 LiveScript,蹭了当时正火的 Java 改叫 JavaScript——纯营销碰瓷。两者语法像一点,设计目标完全不同:Java 造服务器和大型应用,JavaScript 造网页交互。别被名字骗了。
6. JDK、JRE、JVM:三个缩写先混个脸熟
下一节要装环境,先把这三个缩写的包含关系理清(记住谁包谁):
JDK(开发工具包)──── 你要装的,写代码用的全套
└─ JRE(运行环境)── 只想"跑"Java 程序的人装这个就够了
└─ JVM(虚拟机)── 真正干翻译活的引擎
- 只跑 Java 程序 → JRE 够了
- 要写 Java 程序 → 必须装 JDK(里面有编译器 javac)
- 本课程目标是你自己写,所以装 JDK
Java 每半年发一版,但只有 LTS(长期支持版) 值得学:8、11、17、21。教程常基于 JDK 8(老企业多),新项目多用 17/21。本课程基于 JDK 17(LTS)——语法和 8 相差不大,又不至于过时。1.2 节带你装。
7. 常见误区
没有血缘关系,纯蹭名。一个造后端,一个造网页。
恰恰相反:跨平台的前提是每个平台都装了 JVM。没有 JVM,字节码什么也不是。"到处运行"运行在 JVM 之上。
Java 是"先编译成字节码,再由 JVM 解释/JIT 执行"的混合派。严格说"编译型/解释型"是 05 篇那种教学简化,真实世界有很多中间态。
装 JDK 只是"买了厨房",写代码还需要编辑器/IDE(下一章带你装 IntelliJ IDEA)。1.2 节先把厨房搭好。
1995 年出生比很多程序员的工龄都长,但常年霸榜、企业后端的事实标准。"老"在软件行业往往意味着"稳定、轮子多、工作机会多"。
8. 可折叠自测题
靠 JVM:Java 代码只编译一次成字节码(给虚拟机看的中间语言),各平台装各自的 JVM 现场翻译成本地方言。程序一份,JVM 各平台各一份。
一次编译,到处运行。C 直接编译成特定 CPU 的机器码(方言),换平台要重新编译;Java 编译成平台无关的字节码,靠 JVM 抹平方言差异。
JDK ⊃ JRE ⊃ JVM。写代码必须装 JDK(里面才有编译器 javac);只跑程序 JRE 够。
混合派:先由 javac 编译成字节码,再由 JVM 解释/即时执行。占了两头的便宜:编译带来的速度 + 跨平台的灵活。
零关系。1995 年 Netscape 给自己的浏览器脚本语言蹭 Java 的热度改的名。一个面向服务器/应用,一个面向网页。
9. 下一节学什么
- ☐ 1.2 JDK 的下载与安装 —— 把厨房搭起来:下载 JDK 17、配置环境变量、用命令行验证
java -version(保姆式一步一步来) - ☐ 1.3 第一个 Java 程序 Hello World —— 亲手写出行第一个程序
- ☐ 之后:IDE 安装 → 变量与数据类型 → …
10. 下一步学什么
- ☐ 1.2 Java环境搭建 —— 动手装 JDK 17、配环境变量,把厨房搭起来
- ☐ 1.3 第一个程序 Hello World —— 亲手编译、运行第一行代码
11. 相关笔记
- 05 编程是什么-给计算机下指令 ← 编译与解释的完整讲解
- 06 接收指令的装置-CPU ← x86/ARM 方言困境,JVM 要抹平的正是它
- 08 计算机的诞生 ← Java 的祖师爷们
- ☕ Java基础 · 索引
- 🏠 返回主页