☕ Java

安装与第一个程序 Hello World — Java

```html

这是什么?为什么需要它?

想象一下,你是一位导演,而电脑是你个人的剧院。为了让舞台上的演员(程序)开始表演,他们需要剧本。在编程世界里,这样的剧本被称为代码。Java 是一种你可以用来编写这个剧本的语言。

为什么要学习 Java?首先,几乎所有 Android 游戏(例如《我的世界》)、许多网站(比如亚马逊)甚至航天器程序都是用 Java 编写的。其次,Java 是一种非常严谨和清晰的语言——它不容忍错误,但你的程序会运行得快速且可靠。

类比:想象 Java 是乐高积木。在 Python(另一种流行语言)中,你可以用橡皮泥把零件粘在一起,它们勉强能固定住。而在 Java 中,每个零件都必须咔嗒一声卡入到位——只有这样,积木才不会散架。起初这看起来很难,但之后你就能建造不会倒塌的巨大城堡。

每个程序员编写的第一个程序叫做Hello World。它只是在屏幕上输出问候语。这就像字母表中的第一个字母——没有它,寸步难行。

带解释的代码示例

示例 1:最简单的 Hello World

// 声明一个名为 Main 的类(主类)
public class Main {
    // 程序入口——main 方法
    public static void main(String[] args) {
        // 在屏幕上输出文本
        System.out.println("Hello, World!");
    }
}

给初学者的解释:

  • public class Main — 我们告诉电脑:“创建一个名为 Main 的盒子,里面存放我们的代码”。在 Java 中,所有代码都必须放在这样的盒子——类中。
  • public static void main(String[] args) — 这就像启动程序的开关。如果不写这一行,程序就无法启动。记住这一行,就像记住乘法表一样——它总是相同的。
  • System.out.println(...) — “打印并换行”的命令。在 Python 中,这仅仅是 print(...)。在 Java 中需要写得更长,但这样我们确切知道文本输出到哪里——系统控制台。
  • 分号 ; — 就像句子末尾的句号。在 Java 中,每条命令后都必须加上分号。在 Python 中没有分号,这常常让初学者感到困惑。

示例 2:带变量的 Hello World

public class Greeting {
    public static void main(String[] args) {
        // 创建一个存放文本的变量盒子
        String greeting = "Hello, world!";
        // 输出盒子的内容
        System.out.println(greeting);
    }
}

解释:

  • String greeting — 我们说:“创建一个名为 greeting 的盒子,里面只能存放文本(String)”。在 Python 中,你只需写 greeting = "Hello, world!" —— 无需指定类型。而 Java 要求明确:如果盒子是用来放文本的,就只能放文本。
  • 为什么这很方便?如果你不小心试图把数字放入 greeting,Java 会在程序运行前就报错。在 Python 中,这种错误只有在运行时才会被发现——程序可能会在最不恰当的时候崩溃。

示例 3:带数字的 Hello World

public class NumberGreeting {
    public static void main(String[] args) {
        // 整数 (int)
        int year = 2025;
        // 文本
        String message = "我们身处 ";
        // 用加号 + 拼接文本和数字
        System.out.println(message + year);
    }
}

解释:

  • int year — 存放整数的盒子(integer)。在 Python 中不需要指定类型,但在 Java 中这是必须的:int 用于整数,double 用于小数,boolean 用于 true/false。
  • message + year — Java 会自动推断拼接文本和数字。在 Python 中也是如此,但在 Java 中需要小心:如果你把两个数字相加,它们会进行数学加法,而不是像字符串那样拼接。

示例 4:带条件判断的 Hello World(如果-否则)

public class SmartGreeting {
    public static void main(String[] args) {
        // 创建一个变量表示一天中的时间(0-24)
        int hour = 14;
        
        // 检查条件
        if (hour < 12) {
            System.out.println("早上好,世界!");
        } else {
            System.out.println("下午好,世界!");
        }
    }
}

解释:

  • if (hour < 12) — 就像在问:“小时数小于 12 吗?”。如果是,则执行花括号 {} 中的第一个代码块。如果不是,则执行 else 后面的第二个代码块。
  • 花括号 {} — 就像乐高积木中的组。在 Python 中,使用缩进(空格)代替花括号。Java 使用花括号——这更可靠,因为缩进可能被意外移动,导致程序出错。
  • 注意:在 if 后面没有分号。分号只放在花括号内的命令后面。

示例 5:带循环的 Hello World(重复)

public class RepeatHello {
    public static void main(String[] args) {
        // 循环:只要 i 小于 5,就执行...
        for (int i = 0; i < 5; i++) {
            System.out.println("你好,编号 " + i);
        }
    }
}

解释:

  • for (int i = 0; i < 5; i++) — 这就像一个计数器:从 0 开始,检查 i 是否小于 5,每次循环后 i 增加 1(i++)。
  • 循环会执行 5 次:i=0, i=1, i=2, i=3, i=4。当 i 变为 5 时,条件 i < 5 为假,循环结束。
```