当前位置: 首页 > news >正文

Java入门到精通-03 第一个程序——Hello World

目录

  • 🚀 03 第一个程序——Hello World
    • 一、Hello World的由来
    • 二、编写第一个Java程序
      • 2.1 使用记事本编写(了解原理)
      • 2.2 使用IDEA编写(推荐方式)
    • 三、逐行解析代码
      • 3.1 逐行详解
      • 3.2 关键字说明
    • 四、main方法深度解析
      • 4.1 main方法的完整签名
      • 4.2 main方法的等价写法
      • 4.3 命令行参数
      • 4.4 main方法的本质
    • 五、编译与运行流程
      • 5.1 Java程序的生命周期
      • 5.2 编译详解
      • 5.3 运行详解
      • 5.4 反编译查看字节码
    • 六、在IDEA中运行
      • 6.1 创建项目
      • 6.2 创建类并运行
      • 6.3 IDEA快捷操作
    • 七、常见错误与解决方案
      • 7.1 编译错误
      • 7.2 运行错误
      • 7.3 常见错误汇总表
      • 7.4 编码错误问题
    • 八、进阶:改进你的Hello World
      • 8.1 带有变量的Hello World
      • 8.2 使用用户输入
      • 8.3 使用方法封装
    • 九、Java程序的基本结构
      • 9.1 文件结构
      • 9.2 命名规则
      • 9.3 代码风格
    • 十、总结与预告
      • ✅ 本篇总结
      • 💬 互动问题
      • 📖 下篇预告
      • 📚 参考资料

🚀 03 第一个程序——Hello World

更新日期:2026年5月
版权声明:本文为原创文章,转载请注明出处。© 2026 Java入门到精通系列



一、Hello World的由来

“Hello, World!” 程序是每个程序员学习新语言时编写的第一个程序。这个传统起源于1978年 Brian Kernighan 和 Dennis Ritchie 合著的《The C Programming Language》一书。

几乎所有的编程入门教程都以此作为起点,它可以帮助你:

  • ✅ 验证开发环境是否正确配置
  • ✅ 了解语言的基本语法结构
  • ✅ 获得第一个成功的成就感

二、编写第一个Java程序

2.1 使用记事本编写(了解原理)

第一步:创建文件

新建一个文件,命名为HelloWorld.java

⚠️重要:文件名必须与类名完全一致,包括大小写!

第二步:编写代码

publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello, World!");}}

第三步:编译运行

# 打开终端/命令提示符,进入文件所在目录# 编译(将 .java 编译为 .class 字节码文件)javac HelloWorld.java# 运行(注意:不加 .class 后缀)javaHelloWorld# 输出:# Hello, World!

2.2 使用IDEA编写(推荐方式)

1. 打开 IntelliJ IDEA 2. File → New → Project → Java → 选择JDK 21 3. 项目名:HelloWorldDemo 4. 在 src 目录上右键 → New → Java Class 5. 输入类名:HelloWorld 6. 输入代码并运行(点击绿色三角或Shift+F10)

三、逐行解析代码

publicclassHelloWorld{// 第1行:类声明publicstaticvoidmain(String[]args){// 第2行:主方法System.out.println("Hello, World!");// 第3行:输出语句}// 第4行:主方法结束}// 第5行:类结束

3.1 逐行详解

行号代码说明
1public class HelloWorld声明一个公开的类,类名为HelloWorld
1{类的开始
2public static void main(String[] args)主方法,程序的入口点
3System.out.println("Hello, World!")向控制台输出一行文字
4}主方法结束
5}类结束

3.2 关键字说明

关键字含义说明
public访问修饰符表示公开的,任何地方都能访问
class声明一个类,Java程序的基本单位
static静态表示该方法属于类而非实例
void无返回值表示main方法不返回任何值
String[]字符串数组命令行参数的类型

四、main方法深度解析

main方法是Java程序的入口点,JVM从这里开始执行代码。

4.1 main方法的完整签名

publicstaticvoidmain(String[]args)

逐个关键字分析:

public// 1. 公开访问权限,JVM需要调用它static// 2. 静态方法,无需创建对象即可调用void// 3. 无返回值,main不需要向JVM返回结果main// 4. 方法名,JVM固定识别的入口名String[]// 5. 参数类型,字符串数组args// 6. 参数名(可以改成其他名字,但约定俗成用args)

4.2 main方法的等价写法

以下写法都是合法的main方法声明:

// 标准写法publicstaticvoidmain(String[]args){}// args可以换成其他名字publicstaticvoidmain(String[]arguments){}// 可变参数写法(Java 5+)publicstaticvoidmain(String...args){}// 以下写法是不合法的 ❌// static public void main(String[] args) { } // 修饰符顺序不规范(但编译能过)// public void main(String[] args) { } // 缺少static// public static void main(String args) { } // 缺少[]

4.3 命令行参数

publicclassCommandLineArgs{publicstaticvoidmain(String[]args){// args数组包含命令行传入的参数System.out.println("参数个数:"+args.length);for(inti=0;i<args.length;i++){System.out.println("参数"+i+":"+args[i]);}}}

运行方式:

javac CommandLineArgs.javajavaCommandLineArgs Hello Java2026# 输出:# 参数个数:3# 参数0:Hello# 参数1:Java# 参数2:2026

4.4 main方法的本质

┌──────────────────────────────────────────────┐ │ JVM │ │ │ │ 1. 加载 HelloWorld.class │ │ 2. 查找 public static void main(String[]) │ │ 3. 调用 main 方法 │ │ 4. 执行 main 方法中的代码 │ │ 5. main 方法执行完毕,程序结束 │ │ │ └──────────────────────────────────────────────┘

五、编译与运行流程

5.1 Java程序的生命周期

源代码(.java) → 编译(javac) → 字节码(.class) → 运行(java) → 结果

详细流程:

编译期 运行期 ┌──────────────┐ ┌──────────────────┐ │ │ │ │ HelloWorld.java → javac → HelloWorld.class → java → JVM加载执行 → 输出结果 │ │ │ │ │ 词法分析 │ │ 类加载器加载 │ │ 语法分析 │ │ 字节码验证 │ │ 语义分析 │ │ 解释/JIT编译 │ │ 生成字节码 │ │ 执行代码 │ └──────────────┘ └──────────────────┘

5.2 编译详解

# 编译命令javac HelloWorld.java# 编译选项javac-encodingUTF-8 HelloWorld.java# 指定编码javac-dout HelloWorld.java# 指定输出目录javac-verboseHelloWorld.java# 显示详细信息# 编译成功后,会生成 HelloWorld.class 文件# 这个文件包含字节码,是平台无关的

5.3 运行详解

# 运行命令javaHelloWorld# 注意:运行时不加 .class 后缀!# 运行时的内部过程:# 1. JVM启动# 2. 类加载器(ClassLoader)加载HelloWorld.class# 3. 字节码验证器验证字节码的合法性# 4. 执行引擎(解释器/JIT编译器)执行字节码# 5. 找到main方法并开始执行

5.4 反编译查看字节码

# 使用javap查看字节码javap-cHelloWorld.class# 输出(简化版):# Compiled from "HelloWorld.java"# public class HelloWorld {# public HelloWorld();# Code:# 0: aload_0# 1: invokespecial #1# 4: return## public static void main(java.lang.String[]);# Code:# 0: getstatic #2 // Field java/lang/System.out# 3: ldc #3 // String Hello, World!# 5: invokevirtual #4 // Method PrintStream.println# 8: return# }

六、在IDEA中运行

6.1 创建项目

1. File → New → Project 2. 选择 "Java" 3. 选择 JDK 21 4. 项目名:HelloWorldDemo 5. Build system:IntelliJ(初学者推荐) 6. 点击 "Create"

6.2 创建类并运行

1. 在 src 目录上右键 → New → Java Class 2. 类名输入:HelloWorld 3. 输入代码: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } 4. 点击 main 方法左侧的绿色三角 ▶ 5. 选择 "Run 'HelloWorld.main()'" 6. 在底部控制台查看输出

6.3 IDEA快捷操作

操作快捷键(Mac)快捷键(Win/Linux)
运行Ctrl + RShift + F10
调试Ctrl + DShift + F9
代码补全Ctrl + SpaceCtrl + Space
格式化Cmd + Option + LCtrl + Alt + L
生成代码Cmd + NAlt + Insert
快速修复Option + EnterAlt + Enter

七、常见错误与解决方案

7.1 编译错误

错误1:找不到文件

javac HelloWorld.java# 错误:javac: file not found: HelloWorld.java# 解决:# 1. 检查文件名是否正确(大小写敏感)# 2. 检查当前目录是否正确# 3. 使用 cd 命令切换到文件所在目录

错误2:类名与文件名不一致

# 文件名:Hello.java# 代码:public class HelloWorld { ... }# 错误:HelloWorld.java 中的类 HelloWorld 必须在其同名文件中声明# 解决:让文件名与类名保持一致# 方式一:改文件名为 HelloWorld.java# 方式二:改类名为 Hello

错误3:缺少分号

publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello, World!")// 缺少分号!}}// 错误:需要 ';'

错误4:中英文标点混淆

// ❌ 错误:使用了中文分号System.out.println("Hello")// ✅ 正确:使用英文分号System.out.println("Hello");

7.2 运行错误

错误5:找不到主类

javaHello World# 错误:找不到或无法加载主类 Hello World# 原因:类名中间有空格被当成了两个参数# 解决:java HelloWorld

错误6:在错误目录运行

# 在错误的目录下运行javaHelloWorld# 错误:找不到或无法加载主类 HelloWorld# 解决:切换到 .class 文件所在目录cd/path/to/your/class/filesjavaHelloWorld

7.3 常见错误汇总表

错误类型错误信息解决方案
文件名错误file not found检查文件名和路径
类名不匹配类必须在同名文件中文件名与类名保持一致
缺少分号需要';'在语句末尾添加英文分号
中文符号非法字符使用英文标点符号
大括号不匹配解析时已到达文件结尾检查{}是否配对
找不到主类找不到或无法加载主类检查类名和classpath
版本不兼容UnsupportedClassVersionError编译和运行使用相同JDK版本

7.4 编码错误问题

# 如果代码中有中文注释,可能遇到编码错误# 错误:编码 GBK 的不可映射字符# 解决:指定UTF-8编码javac-encodingUTF-8 HelloWorld.java

八、进阶:改进你的Hello World

8.1 带有变量的Hello World

publicclassHelloWorldWithVariables{publicstaticvoidmain(String[]args){// 声明变量Stringgreeting="Hello";Stringtarget="World";intyear=2026;// 字符串拼接System.out.println(greeting+", "+target+"!");// 格式化输出System.out.println("欢迎来到Java世界,现在是"+year+"年!");// 多行输出System.out.println("==================");System.out.println("| Hello World! |");System.out.println("| Java is Cool! |");System.out.println("==================");}}

输出:

Hello, World! 欢迎来到Java世界,现在是2026年! ================== | Hello World! | | Java is Cool! | ==================

8.2 使用用户输入

importjava.util.Scanner;publicclassInteractiveHello{publicstaticvoidmain(String[]args){// 创建Scanner对象用于读取用户输入Scannerscanner=newScanner(System.in);System.out.print("请输入你的名字:");Stringname=scanner.nextLine();System.out.println("你好,"+name+"!欢迎学习Java!");System.out.println("当前时间:"+java.time.LocalDateTime.now());scanner.close();}}

8.3 使用方法封装

publicclassHelloWithMethods{publicstaticvoidmain(String[]args){// 调用自定义方法sayHello("World");sayHello("Java");sayHello("开发者");// 带返回值的方法Stringmessage=createGreeting("World");System.out.println(message);}// 自定义方法:无返回值publicstaticvoidsayHello(Stringname){System.out.println("Hello, "+name+"!");}// 自定义方法:有返回值publicstaticStringcreateGreeting(Stringname){return"Hello, "+name+"! Welcome to Java!";}}

九、Java程序的基本结构

9.1 文件结构

// 1. package语句(可选,表示包/目录)packagecom.example;// 2. import语句(可选,导入其他类)importjava.util.Scanner;importjava.time.LocalDateTime;// 3. 类声明(必须,一个文件通常一个public类)publicclassMyProgram{// 4. 成员变量(可选)privateStringname;privateintage;// 5. 构造方法(可选)publicMyProgram(Stringname,intage){this.name=name;this.age=age;}// 6. 主方法(程序入口)publicstaticvoidmain(String[]args){// 程序从这里开始执行System.out.println("程序开始运行!");MyProgramprogram=newMyProgram("Java",30);program.greet();}// 7. 自定义方法(可选)publicvoidgreet(){System.out.println("Hello, I'm "+name+", "+age+" years old.");}}

9.2 命名规则

元素命名规则示例
类名大驼峰(PascalCase)HelloWorld,StudentInfo
方法名小驼峰(camelCase)sayHello,getAge
变量名小驼峰(camelCase)studentName,maxAge
常量名全大写下划线MAX_VALUE,PI
包名全小写com.example.demo

9.3 代码风格

// ✅ 好的代码风格publicclassGoodStyle{privatestaticfinalintMAX_COUNT=100;publicstaticvoidmain(String[]args){StringuserName="Java Learner";intscore=95;if(score>=60){System.out.println(userName+" 通过了考试!");}else{System.out.println(userName+" 需要继续努力!");}}}// ❌ 不好的代码风格publicclassbadstyle{privatestaticfinalintmax_count=100;// 常量应用全大写publicstaticvoidmain(String[]args){Stringuser_name="Java Learner";// 变量应用小驼峰ints=95;// 缺少空格,变量名不清晰if(s>=60){// 缺少空格System.out.println(user_name+"通过了考试!");}}}

十、总结与预告

✅ 本篇总结

  • ✅ 编写了第一个Java程序Hello World
  • ✅ 逐行解析了代码中每个关键字的含义
  • ✅ 深入理解了main方法的作用和结构
  • ✅ 了解了Java程序的编译和运行流程
  • ✅ 学会了在IDEA中创建和运行项目
  • ✅ 掌握了常见错误的排查方法
  • ✅ 了解了Java程序的基本结构和命名规范

💬 互动问题

  1. 你在运行Hello World时遇到了什么错误?
  2. public static void main(String[] args)中每个关键字的作用是什么?
  3. .java文件和.class文件有什么区别?

📖 下篇预告

第04篇:变量与数据类型,我们将学习:

  • 什么是变量?如何声明和初始化变量
  • Java的八大基本数据类型
  • 类型转换(自动和强制)
  • 变量的作用域和命名规范

📚 参考资料

  • Oracle Java教程 - Hello World
  • Java语言规范
  • IntelliJ IDEA入门教程

📝系列目录:Java入门到精通系列 |上一篇:02-环境搭建JDK安装与配置 |下一篇:04-变量与数据类型

http://www.jsqmd.com/news/1034430/

相关文章:

  • 创业中心品牌哪家好?博仕德靠谱吗? - myqiye
  • Gemini多模态原生架构:从胶水层到共生训练的技术范式迁移
  • STM32通用GPIO模拟驱动TM1629A数码管的轻量级代码包(含.c/.h文件与Demo)
  • 性能调优与排错:GraphRAG 系统的瓶颈分析与优化实战
  • 鸿蒙数学108篇 第一百零六篇:鸿蒙数学与道统总闭环
  • 2026年南昌K金回收怎么选?5个关键考察点与专业机构推荐,看这篇就够了 - 本地品牌推荐
  • 2026 安徽六安全区域彩钢瓦修缮公司甄选指南|4 家正规企业深度对比 + 权威 TOP 推荐 + 完整避坑手册 - 本地便民网
  • 数据科学面试避坑指南:9个暴露业务脱节的真实错误
  • Linux Pulseaudio深度解析之pa_stream_set_read_callback调用流程与实战(三十六)
  • 腾讯元宝代码如何导出使用?AI导出鸭实测:告别公式乱码
  • 幕墙精致钢精品定制哪家好?天津市洪伟钢管靠谱吗 - myqiye
  • 成都奔驰维修保养避坑指南:资深玩家教你选对专修店,少花冤枉钱
  • AMD Ryzen SDT调试工具终极指南:解锁处理器隐藏性能的专家级方案
  • 智能学习助手:AutoUnipus如何让网课学习效率提升85%
  • 鸿蒙数学108篇 第一百零八篇:万数归一终极总结 + 鸿蒙数学传承总纲
  • 【分享】10.5 终面失败的五大真实原因——大多数人根本不知道自己输在哪里
  • 客餐厅白蜡木家具定制哪家价格合理? - myqiye
  • 智能呼叫软件推荐:2026主流AI呼叫系统功能横评 - 品牌2026
  • 怎么把图片压缩到1MB以下?用秒转工具箱小程序就能处理 - 效率工具研究所
  • Bulk Rename Utility批量增加后缀教程
  • 江苏做非标工业机器人的厂家哪家好?干货指南 - myqiye
  • 长治市黄金回收+白银回收+铂金回收+彩金回推荐收门店 本地靠谱店铺指南及地联系方式址和 - 大熊猫898989
  • 2026 安徽宿州全域彩钢瓦修缮四大正规企业深度测评|皖北风雪沙尘专属对比 + 工厂业主完整版避坑指南 - 本地便民网
  • 2026保姆级教程:PPT导出高清PDF无压缩方法,本地/在线/小程序无损转换工具手把手教学
  • DeepSeek识图模式:国产多模态OCR与语义理解的工程化突破
  • AI也会上瘾?一篇论文撕开了模型“情感“的底层逻辑
  • 2026 安徽滁州全域彩钢瓦翻新修缮四大正规企业深度评测|皖东梅雨高温专属对比 + 工厂业主全套避坑指南 - 本地便民网
  • 盘点哈尔滨汽车玻璃膜靠谱品牌,金马荣耀上榜 - mypinpai
  • 5分钟快速上手:开源AI视频增强工具Video2X完整指南
  • 性价比高的重型筛分站,宝创工程机械推荐 - myqiye