Learn
Java/01-hello-world

第一个 Java 程序

💡🤖 AI 时代,还要学 Java 吗?学到什么程度?

Java 的基础语法可交给 AI 辅助生成,不必专门花时间死记;但 JVM 的内存与垃圾回收、类型系统与大型项目的分层设计仍需你理解,否则调性能、排障、定架构时无从下手。建议学到「能读懂 AI 产物、理解类型边界与运行模型」这一层。

Java 是一门编译型 + 虚拟机语言:源代码被 javac 编译为字节码,由 JVM 执行。

1. Hello, World!

Hello World
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, 世界!");
        System.out.println("Java " + System.getProperty("java.version"));
    }
}
⚠️本 Playground 约束

本平台要求示例中类名必须为 Main,且必须声明为 public class Main。运行时会编译 Main.java 并执行 java Main。

2. 关键名词

  • JDK:Java Development Kit(编译、调试、运行工具集)
  • JRE:Java Runtime Environment(运行字节码)
  • JVM:Java Virtual Machine(执行字节码的虚拟机)
  • 字节码:.class 文件,JVM 的指令集
javac Main.java     # 编译 -> Main.class
java Main           # 运行

3. main 方法签名

public static void main(String[] args)
  • public:JVM 调用,必须 public
  • static:无需创建实例
  • void:无返回值
  • args:命令行参数
main 接收参数
public class Main {
    public static void main(String[] args) {
        System.out.println("参数个数:" + args.length);
        for (int i = 0; i < args.length; i++) {
            System.out.println("  [" + i + "] " + args[i]);
        }
    }
}

4. 输出方法

方法用途
System.out.print(s)不换行
System.out.println(s)换行
System.out.printf(fmt, args)格式化
printf 格式化
public class Main {
    public static void main(String[] args) {
        String name = "Alice";
        int age = 30;
        System.out.printf("姓名:%s,年龄:%d%n", name, age);
        System.out.printf("π = %.4f%n", Math.PI);
        System.out.printf("布尔:%b%n", true);
    }
}
💡%n vs \n

Java 跨平台换行用 %n(Formatter)或 System.lineSeparator(),比 \n 更安全(Windows 下也是正确的换行符)。

5. 注释

// 单行注释
 
/*
   多行
   注释
*/
 
/**
 * 文档注释(Javadoc)
 * @author sinvy
 */

🎯 练习

自我介绍
// 任务:使用 printf 输出自我介绍
// 期望效果:
//   姓名:XXX
//   年龄:XX
//   城市:XXX
 
public class Main {
    public static void main(String[] args) {
        String name = "小明";
        int age = 25;
        String city = "上海";
        // 补全输出
    }
}

小结

  • ✅ Java 编译运行:javac Main.java → java Main
  • ✅ 入口方法 public static void main(String[] args)
  • ✅ System.out.print/println/printf 输出
  • ✅ 注释:// / /* */ / /** */
  • ✅ %n 跨平台换行

下一章 变量与类型。