← Java 学习路线(共 8 章)

第 1 章 第一个 Java 程序与运行环境

red wenzi · 2026-09-15 · 编程语言 · Java · 📖 预计阅读 7 分钟 · 共 2 道练习
🎯 本章你会学到:JDK / JRE / JVM 的关系、javac 与 java 两条命令、类名与文件名的规则。建议边读边敲,每节练习先自己做,再展开答案对照。

Java 程序的运行方式和 C/C++ 不同:源码先编译成**字节码**(.class),再由 JVM 解释/即时编译执行。所以同一份 .class 能在 Windows、Linux、macOS 上跑——这就是“一次编写,到处运行”的含义。

第一个程序

Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, Java");
    }
}
运行结果
Hello, Java
编译并运行
javac -encoding UTF-8 Main.java    # 编译,产生 Main.class
java Main                          # 运行(注意不带 .class)

命令行参数

读取命令行参数
public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (String arg : args) {
            sum += Integer.parseInt(arg);   // 字符串转整数
        }
        System.out.println("args=" + args.length);
        System.out.println("sum=" + sum);
    }
}
输入
1 2 3
运行结果
args=3
sum=6
⚠️ 易错点 public class Main 写在 hello.java 里会直接编译报错:文件名必须与 public 类名一致。
⚠️ 易错点 运行写 java Main.class 是错的,java 接的是类名;javac 才接文件名。

✍️ 本节练习

1.1必做读一行并回显

Scanner 读入一行文字,输出 hello, 加上这行文字。

输入 一行文字。

输出 一行 hello, 原内容

样例输入
world
样例输出
hello, world

💡 提示 new Scanner(System.in).nextLine() 读整行;next() 只读到空白为止。

✅ 查看参考答案与解析
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        System.out.println("hello, " + line);
    }
}

解析 nextLine() 读整行(含空格),next() 遇到空白就停——这是 Java 里最常见的输入坑。

1.2挑战两数之和

读入两个整数,输出它们的和。

输入 一行两个整数 a b。

输出 一行 sum=结果

样例输入
3 5
样例输出
sum=8

💡 提示 sc.nextInt() 一次读一个整数,可以连着读多个。

✅ 查看参考答案与解析
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        System.out.println("sum=" + (a + b));
    }
}

解析 注意 "sum=" + a + b 会把数字当字符串拼接(得 sum=35),要加括号 (a + b) 才是先算加法。

📚 本文概念都在知识大全:

JVM 与字节码 · JDK · String 与 StringBuilder · 集合框架 · 泛型 · 受检异常 · 继承与接口 · record · Stream API