☕ 第一章 Java开发入门

1.1 Java 概述

📄 一句话概括

Java 是一门 1995 年出生的高级编程语言,最大的本事是跨平台:你的程序只编译一次成"字节码",任何装了 JVM(Java 虚拟机)的设备——Windows、Mac、Linux、安卓——都能跑。口号:Write Once, Run Anywhere(一次编写,到处运行)。


1. Java 是什么:把 05 篇的"下指令"接上

你已经在计算机基础 05 篇知道:编程 = 给 CPU 写指令清单。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 的机器码,跑起来
💡 这也回应了 05 篇的"翻译官"分类

05 篇说语言分"编译派"(C,提前译好)和"解释派"(Python,现场翻译)。Java 是混合派:先编译成字节码(拿到编译的好处),再由 JVM 解释/即时执行(拿到跨平台的好处)。两头的便宜它都想占,还都占到了——这是它统治企业级市场 30 年的根基。

3. 其他三个值得记住的特性

特性 大白话 呼应
面向对象 把代码组织成"物体"——先造模板(类),再按模板造实物(对象) 后续章节细讲,现在混个脸熟
自动内存管理(GC) 你只管申请内存用,用完的垃圾 Java 自己扫走,不用手动归还 06 篇讲过内存是程序的地盘;C 语言要手动还,忘了还就"内存泄漏"
生态庞大 想干什么几乎都有现成的轮子:连数据库、发网络请求、做界面…… 相当于装修有全屋定制,不用自己打家具

4. Java 能做什么 / 三大版本

Java 官方分三个版本,学 Java 的路只有一条:

具体的应用场景:银行与电商后端(稳定、安全是 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 每半年发一版,但只有 LTS(长期支持版) 值得学:8、11、17、21。教程常基于 JDK 8(老企业多),新项目多用 17/21。本课程基于 JDK 17(LTS)——语法和 8 相差不大,又不至于过时。1.2 节带你装。

7. 常见误区

⚠️ 误区一:Java 和 JavaScript 是一家的

没有血缘关系,纯蹭名。一个造后端,一个造网页。

⚠️ 误区二:Java 跨平台 = Java 程序不需要任何环境

恰恰相反:跨平台的前提是每个平台都装了 JVM。没有 JVM,字节码什么也不是。"到处运行"运行在 JVM 之上。

⚠️ 误区三:Java 被编译,所以它是"编译型语言",和解释型彻底无关

Java 是"先编译成字节码,再由 JVM 解释/JIT 执行"的混合派。严格说"编译型/解释型"是 05 篇那种教学简化,真实世界有很多中间态。

⚠️ 误区四:装了 Java 就能写程序

装 JDK 只是"买了厨房",写代码还需要编辑器/IDE(下一章带你装 IntelliJ IDEA)。1.2 节先把厨房搭好。

⚠️ 误区五:Java 太老了,过时了

1995 年出生比很多程序员的工龄都长,但常年霸榜、企业后端的事实标准。"老"在软件行业往往意味着"稳定、轮子多、工作机会多"。

8. 可折叠自测题

❓ Q1. Java 跨平台靠什么实现?字节码是什么?

靠 JVM:Java 代码只编译一次成字节码(给虚拟机看的中间语言),各平台装各自的 JVM 现场翻译成本地方言。程序一份,JVM 各平台各一份。

❓ Q2. Write Once, Run Anywhere 是什么意思?C 语言为什么做不到?

一次编译,到处运行。C 直接编译成特定 CPU 的机器码(方言),换平台要重新编译;Java 编译成平台无关的字节码,靠 JVM 抹平方言差异。

❓ Q3. JDK、JRE、JVM 谁包含谁?写代码要装哪个?

JDK ⊃ JRE ⊃ JVM。写代码必须装 JDK(里面才有编译器 javac);只跑程序 JRE 够。

❓ Q4. Java 是编译型还是解释型语言?

混合派:先由 javac 编译成字节码,再由 JVM 解释/即时执行。占了两头的便宜:编译带来的速度 + 跨平台的灵活。

❓ Q5. Java 和 JavaScript 的关系?

零关系。1995 年 Netscape 给自己的浏览器脚本语言蹭 Java 的热度改的名。一个面向服务器/应用,一个面向网页。


9. 下一节学什么


10. 下一步学什么


11. 相关笔记

Java基础 #Java入门 #JVM #跨平台 #第一章