1.1 Hello World 与 JVM
程序(program)是一组让计算机解决问题的指令。刚开始学习编程时,最容易误解的一点是:计算机并不会“理解”人类自然语言。即使是“计算一下 1 + 2”这么简单的请求,也必须被写成计算机能执行的明确步骤。
计算机底层处理的是二进制信息,也就是由 0 和 1 表示的数据。编程语言的作用,是把人的想法变成一组结构化、可执行、没有歧义的指令。你写下源代码(source code),Java 编译器会检查代码并把它变成字节码(bytecode),然后 Java 虚拟机(Java Virtual Machine, JVM)负责运行这些字节码。这个“先编译成字节码,再交给 JVM 运行”的模型,是 Java 能在多种操作系统上运行的重要原因之一。
常见的主流编程语言包括:
- Python:语法简洁,常用于入门编程、数据分析、人工智能、自动化脚本和 Web 后端。
- C:更接近计算机底层,常用于操作系统、嵌入式系统和性能敏感的程序。
- C++:在 C 的基础上支持更多抽象能力,常用于游戏引擎、高性能计算和大型软件系统。
- Java:常用于企业级后端、Android 开发和大型跨平台系统。
- JavaScript / TypeScript:主要用于网页前端,也可以用于后端和全栈开发。
- Go、Rust、C#:分别常见于云服务、系统编程、游戏开发和企业应用等领域。
不同语言的语法、适用场景和学习曲线不同,但它们的共同目标都是把人的想法变成计算机可以执行的明确指令。
什么是程序?
一个程序通常包含四类基本动作:
- 输入(input):从键盘、文件、网络或其他来源获得数据。
- 处理(processing):计算、判断、转换或保存数据。
- 输出(output):把结果显示到屏幕、写入文件,或发送给其他系统。
- 控制流程(control flow):决定哪些步骤先执行、哪些步骤重复执行、哪些步骤在条件满足时才执行。
学习 Java 时,不需要一开始就掌握所有复杂语法。更重要的是先建立一个稳定心智:程序是一组清晰步骤,计算机会严格按照这些步骤执行。
流程图
流程图(flowchart)是一种把程序步骤画出来的方法。它适合在写代码之前帮助你看清程序的执行顺序。
下面这个流程图描述了如何计算从 1 到 100 的整数和。注意其中的菱形节点:它代表一次判断。如果条件为真,程序继续累加;如果条件为假,程序输出结果并结束。
计算 1 到 100 的整数和
标准流程图用终止符表示开始/结束,用矩形表示处理步骤,用菱形表示条件判断。
对应到代码时,它大致会变成“初始化变量、循环判断、累加、更新变量、输出结果”这几个动作。
public class SumOneToHundred {
public static void main(String[] args) {
int i = 1;
int total = 0;
while (i <= 100) {
total = total + i;
i = i + 1;
}
System.out.println(total);
}
}第一个 Java 程序
Hello World 通常是学习一门编程语言的第一个程序。它的作用非常单纯:向屏幕输出一段文本。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}运行结果:
Hello World!这里有五个细节值得马上记住:
public class HelloWorld定义了一个名为HelloWorld的类。
main通常是 Java 程序的入口方法。
- 大括号
{}把属于类和方法的语句组织在一起。
System.out.println()负责输出文本,并自动换行。
- 每条语句以分号
;结束。
中间那行可以读成:“请调用 System.out.println,把字符串 Hello World! 显示到屏幕上。”
运行 Java 代码
很多初学者会在可以一键运行的 IDE 中写 Java,例如 IntelliJ IDEA、Eclipse、带 Java 扩展的 VS Code、Android Studio,或者在线评测 / 教学环境。在这些工具里,通常创建一个 Java 源文件,点击 Run 或 Build,就能在输出面板看到结果。
如果使用终端,可以把文件保存为 HelloWorld.java,再用 JDK 工具编译和运行:
javac HelloWorld.java
java HelloWorldjavac 会把源代码编译成 .class 文件里的字节码。java HelloWorld 会让 JVM 加载这些字节码并执行 main 方法。
后面的课程会把重点放在 Java 语法和问题求解上,默认你已经有 IDE、教学平台或其他一键运行环境来运行示例。
其他语言中的 Hello World
不同语言的 Hello World 写法不同,但核心目的相同:把文本输出到屏幕。对比这些例子可以帮助你看出 Java 明确写出了哪些结构。
print("Hello World!")#include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}Java 会明确写出程序入口和类结构。刚开始看起来比 Python 长一些,但当程序变大时,这种结构会很有帮助。
注释
注释(comment)是写给人看的说明,不会作为程序指令执行。它可以解释代码目的、记录作者信息,或提醒自己某段逻辑的关键原因。
Java 中常见的注释方式包括:
- 单行注释:以
//开头,该行后面的内容会被视为注释。
- 多行注释:使用
/* ... */包裹多行文本。
System.out.println("Hello World!"); // 输出 "Hello World!"注释不是越多越好。对初学者来说,建议优先注释“为什么这样做”,而不是机械重复“这行代码做了什么”。