🐸 青蛙编程网
首页 / Java / Java 基础 / 1. Java 是什么

Java 是什么:概念与 JDK 安装

这是什么:Java = 一门编译型编程语言,写好的 .java 源码先被翻译成字节码,再交给虚拟机执行。

为什么用:如果你是纯零基础,建议先去 Python 基础 找找「程序跑起来」的感觉再回来;直接从 Java 开始也完全没问题,本教程从零讲起。装工具是学编程最劝退的一步,所以我们把它放在第一章解决——后面十几个章节,全靠今天这几十分钟打好地基。

如何用:本章先弄清 JDK、JRE、JVM 的关系,再把 JDK 25 装好,最后敲一句代码验证编译器能用。

一句话解释

Java 是一门"一次编写,到处运行"的编程语言——同一份代码,Windows、macOS、Linux 都能跑。它是企业级开发的主力语言:手机 App 的后端、银行系统、大数据平台,很多都是 Java 写的。

这么说可能还是有点抽象,看看它藏在哪些你天天用的东西里:

你熟悉的东西 Java 在里面的角色
安卓手机 App 大量 App 的后端服务用 Java 写
网购下单、支付 订单、库存、结算系统大多是 Java
银行、证券系统 稳定性要求极高的领域,Java 是老牌主力
大数据平台 Hadoop、Spark 等生态诞生于 Java 系

它不是最"潮"的语言,但求稳的企业都爱它——一门语言能火几十年,靠的不是花哨,而是可靠。

为什么能"到处运行"

秘密在于一个中间人:JVM(Java 虚拟机)。

你的代码不直接指挥电脑,而是先翻译成"中间码"(字节码),再由各个系统上的 JVM 负责执行。就像你写一封信,世界各地都派了一位翻译官(JVM),写信的人只管写一次。

把整个流程拆开看,一共三步:

步骤 谁来做 产出 类比
① 写源码 你 Hello.java(人能看懂的代码) 写一封信
② 编译 编译器 javac Hello.class(字节码) 把信翻译成"通用语"
③ 运行 各平台的 JVM 屏幕上的结果 各地翻译官读给当地人听

这里有个关键分工:字节码是全世界统一的,JVM 是分平台的。Windows 有 Windows 版 JVM,Mac 有 Mac 版 JVM,它们都认识同一种字节码。所以"适配不同系统"这个麻烦事被 JVM 拦下了,写代码的你完全不用管——这就是"一次编写,到处运行"的全部秘密。

顺带澄清一个常见误会:Java 不是"解释型语言"那种逐行执行,也不像 C 那样直接编译成机器码。它是先编译成字节码、再由 JVM 执行的混合路线,兼得两端的好处:编译期帮你抓错误,JVM 帮你跨平台。

JDK、JRE、JVM 什么关系

一句话记住:JDK 包含 JRE,JRE 包含 JVM。JVM 管运行,JRE = JVM + 运行库,JDK = JRE + 编译器等开发工具。我们要写代码,直接装最全的 JDK。

缩写 全称 一句话
JVM Java 虚拟机 真正干活的运行引擎
JRE Java 运行环境 JVM + 运行所需的库
JDK Java 开发工具包 JRE + 编译器,写代码装它

用"套娃"来理解最直观:JDK 是最大的盒子,拆开是 JRE,再拆开才是 JVM。三个角色分工明确——

  • JVM:只管一件事,把字节码变成机器能干的活。它不认识 .java 源文件。
  • JRE:光有引擎还不够,跑程序经常要用现成的轮子(比如打印、读文件、网络通信这些基础库),JRE = 引擎 + 轮子库,只够"跑",不够"写"。
  • JDK:在 JRE 之上再加开发工具,最重要的是编译器 javac,还有调试器、文档工具等。写代码的人必备。

打个比方:JVM 是发动机,JRE 是整车(能开走),JDK 是带修理工具的整车(能开也能修能改装)。你是要"造车"的人,所以装 JDK。

先睹为快

看一段 Java 代码感受一下(细节后面章节都会讲):

public class Hello {
    public static void main(String[] args) {
        System.out.println("你好,Java!");
    }
}

运行后输出:

你好,Java!

比 Python 的 print("你好") 啰嗦不少?是的。但正因为规则严格、结构清晰,大项目里它稳定可靠——这就是企业爱它的原因。

先把这段代码的骨架看熟,它就是接下来十几章的"舞台":

代码片段 角色 类比
public class Hello 定义一个类,Java 代码必须写在类里 整栋楼的楼名
main 方法 程序入口,从这里开始执行 大门
System.out.println(...) 打印一行内容 喇叭
每句末尾的 ; 语句结束符 句号

你会发现 Python 一行能干的事,Java 要裹上"类"和"方法"两层外壳。这不是故意为难人:代码规模一大,这种强制的结构反而成了"目录"——去哪找什么代码,一目了然。小项目吃亏,大项目受益,这就是 Java 的性格。

Java 和 Python 的本质区别

维度 Python Java
类型系统 动态类型 静态类型,变量要先声明类型
运行方式 解释型,逐行执行 编译成字节码,JVM 运行
变量声明 age = 18 直接用 int age = 18; 必须标类型
代码位置 可直接写在文件顶层 代码必须写在类里
典型用途 脚本、AI、数据处理 企业后端、安卓、大数据

光看表格还不够,展开说说这两条区别到底意味着什么。

静态类型 vs 动态类型:Python 里变量像个"随便贴标签的盒子",今天装数字明天装文字,运行到那行才报错;Java 的盒子出厂就刻死了用途,装错了编译阶段就拦下,程序压根跑不起来。看起来 Java 更麻烦,但换个角度:错误发现得越早,修起来越便宜。项目几万行代码时,编译器就是你的第一道保安。

编译 vs 解释:Python 跑脚本,改一行就能立刻看效果,爽;Java 要先编译再运行,多一步。但编译过的代码交给了 JVM,运行效率高、错误前置,适合常年运转的大型系统。一句话:Python 求快(开发快),Java 求稳(系统稳),各有各的赛道。

安装 JDK 25

JDK 25 是 2025 年 9 月发布的最新 LTS(长期支持版),无脑选它。

LTS 是什么:Long-Term Support,长期支持版。JDK 每半年发一个新版本,但只有 LTS 版会获得多年维护,企业生产环境清一色用 LTS。学习阶段跟着 LTS 走,教程和答案最多。

安装步骤

  1. 下载:Adoptium(Eclipse Temurin) 或 Oracle 官网,都免费,任选一个
  2. 安装时务必勾选 Add to PATH(把 Java 加进系统路径)——Python 章讲过的第一大坑,Java 同款
  3. 打开命令行(Win + R 输入 cmd 回车),输入:
java --version

看到类似下面的输出,就装好了 🎉

openjdk version "25" 2025-09-16 LTS

为什么要加 PATH:你在命令行敲 java 时,系统得知道去哪个文件夹找这个程序。PATH 就是系统的"常用地址簿",把 JDK 的 bin 目录登记进去,以后在任何文件夹敲 java 都能找到人。没登记,系统只能说"不是内部或外部命令"。

验证编译器

再输入 javac --version,确认编译器也在:

javac 25

这一步别偷懒:java 能用只说明运行环境 OK,javac 在才说明开发工具齐了——你后面每章都要靠它把源码变成可运行的程序。

如果提示 java 不是内部或外部命令,通常是安装时没勾选"添加到 PATH",重新安装或手动把 JDK 的 bin 目录加到系统 PATH 即可。

安装翻车排查清单

症状 原因 处理
java 不是内部或外部命令 没加 PATH 或没重开命令行 重装勾选 PATH;已勾选就关掉 cmd 重开再试
命令行敲了没反应,但 IDEA 里能跑 IDE 自带 JDK,系统 PATH 没配 学习阶段也建议配好,命令行是排障利器
下载页面选项太多不会选 平台选对(Windows/macOS),架构 Windows 一般选 x64 版本选最新 LTS 即可

用什么写代码

  • 轻量派:VS Code + Java 扩展包——免费轻量,有代码提示和调试
  • 全家桶派:IntelliJ IDEA 社区版——Java 开发的事实上标准 IDE,社区版免费

两选一即可,本书代码两边都能跑。

对比项 VS Code IDEA 社区版
安装体积 小,装扩展即可 大,功能全
上手速度 快,界面简洁 稍慢,按钮多
Java 专属体验 够用 更顺(重构、提示更强)
适合谁 已在用 VS Code 的人 打算长期写 Java 的人

给你个实在的建议:纠结就选 IDEA 社区版。它是 Java 圈的"普通话",工作中见到的截图、教程大多基于它,跟着教程操作不容易对不上号。当然,本书所有代码都是"裸代码",用记事本 + 命令行也能跑——工具不挑代码,别让工具挑选耽误你开始。

❓ 常见问题

Q1:学 Java 需要先会 Python 或 C 吗?

不需要。本教程从零讲起,之前写过 Python 反而要留意"换个习惯":变量先声明类型、每句加分号、代码必须住在类里。零基础反而少包袱。

Q2:JVM 本身是什么语言写的?和"用 Java 写的程序"什么关系?

JVM 是一个独立的软件(用 C/C++ 等写成),负责执行字节码。你写的 Java 程序跑在 JVM 里面——把 JVM 想成一台"软件虚拟出来的电脑",你的程序就是装进这台电脑里的应用。

Q3:为什么命令行输 java --version 有输出,Java --version(大写 J)却报错?

命令是区分大小写的,java 是注册在 PATH 里的程序名,必须小写。顺带记住:以后给类起名叫 Hello、变量叫 hello,大小写都是"不同的名字"。

Q4:装好了 JDK,是不是所有章节的代码都能直接跑?

能。本书基础篇和面向对象篇的所有例子,都只需要"一个 .java 文件 + 一条命令",不依赖任何第三方库——这是刻意安排的,让你把注意力全部放在语言本身。

⚠️ 新手翻车现场

翻车一:装完了,命令行却说"不是内部或外部命令"

'java' 不是内部或外部命令,也不是可运行的程序或批处理文件。

原因:两种情况——安装时没勾选 Add to PATH;或者勾了,但报错的命令行窗口是在安装之前打开的(PATH 变更对老窗口不生效)。

修复三步:① 完全关闭当前 cmd,重新开一个;② 还不行就重装 JDK,安装界面勾选 Add to PATH;③ 再不行,手动把 JDK 安装目录下的 bin 文件夹路径加入系统环境变量 PATH。

举一反三:"装了软件但命令行找不到"是所有编程语言安装的第一坑,本质都是 PATH 问题,思路完全通用。

翻车二:下载安装包时选错了架构

原因:Adoptium 下载页有 x64、aarch64 等选项,选错了装不上或装上跑不了。普通 Windows 电脑选 x64;苹果芯片的 Mac 选 aarch64。

修复三步:① Windows 用户按 Win + R 输入 msinfo32 回车,看"系统类型";② x64 处理器就选 x64 的包;③ 下载后一路下一步,记得勾 PATH。

举一反三:装任何开发工具先确认"操作系统 + 架构",30 秒检查能省一小时排错。

翻车三:看教程视频敲 java -version,自己敲 java --version 报错

原因:老教程多用单横线 -version,新版本 JDK 两种都认。看到不一样先别慌,两种都试试。

修复三步:① 优先用本书的 java --version;② 报错就换 java -version;③ 都不行回到翻车一查 PATH。

举一反三:技术教程会过时,报错时先怀疑"教程老了"或"环境不同",而不是怀疑自己笨。

记忆口诀

写代码装 JDK,跑程序靠 JVM,一套代码走天下。

记忆锚点:把 Java 世界想成一个跨国公司——你(程序员)用世界语(Java)写信,编译器 javac 把信统一翻译成"总部备忘录格式"(字节码),各地分公司经理(各平台 JVM)拿到的格式完全一样,再用本地话传达给员工(硬件)。信只写一次,翻译分工给各地。

📝 本章小结

  • Java 靠"字节码 + JVM"实现一次编写到处运行:源码 .java 编译成 .class,各平台 JVM 负责执行
  • JDK ⊃ JRE ⊃ JVM:JVM 是引擎,JRE = 引擎 + 运行库,JDK = JRE + 编译器等工具;写代码装 JDK
  • Java 是静态类型语言,变量先声明类型,代码必须写在类里,错误在编译期就暴露
  • 安装 JDK 选最新 LTS,安装时勾选 Add to PATH,装完用 java --version 和 javac --version 双验证
  • IDE 二选一:VS Code 轻量,IDEA 社区版是 Java 圈标配;纠结选后者

动手改

  1. 装完 JDK 25,用 java --version 查出自己的版本号
  2. 再试试 javac --version(编译器版本),确认它也在
  3. 数一数上面 Hello 代码里有几个大括号——下一章你会亲手写它
  4. 故意在命令行敲一个不存在的命令(比如 javaa),观察报错长什么样——认识"正常报错"是新手必修课

下一章:第一个程序:Hello World,跑起你人生第一段 Java 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。