Java学习笔记:开发初体验:HelloWorld


一般初学者开发第一个Java程序,我们习惯称之为:HelloWorld

1. Java程序的开发步骤

Java程序开发一般分为三步:编写编译运行

  • 将Java代码编写到以.java结尾的源文件中。
  • 通过javac.exe命令对源文件(.java)进行编译,编译后在当前源文件所在目录会自动生成一个或多个以.class结尾的字节码文件。
  • 通过java.exe命令对生成的字节码文件(.class)进行解释运行。

1.1 编写Java源代码

  • 使用文本编辑器(记事本、EditPlus、NotePad++)或IDE)(Eclipse、IntelliJ IDEA)。

  • 创建以.java为扩展名的源文件。如:HelloWorld.java

  • 在源文件中编写Java代码:

    class HelloWorld {
      public static void main(String[] args) {
        System.out.println("Hello,World!");
      }
    }
    

1.2 编译源代码

  • 打开cmd命令行终端,切换到源文件所在目录。

  • 使用javac命令编译:

    javac HelloWorld.java
    
  • 编译成功后会生成字节码文件HelloWorld.class

1.3 解释运行

  • 使用java命令启动Java虚拟机(JVM)执行字节码文件(.class)。

    java HelloWorld
    

    注意:不加.class后缀。

    如图所示:JVM执行过程

  • 程序输出结果:

    Hello,World!
    

2. 总结:常见错误问题

  • Java是一门严格区分大小写的编程语言。

  • 每个类或方法都是以大括号成对出现;每个执行语句结束都以;结束。格式:

    类 {
          方法 {
                  执行语句;
          }
    }
    
    • 一定要有缩进。只要遇到{}就缩进,每一级缩进一个Tab键。
    • {}的左半部分在行尾,右半部分单独一行,与和它成对的”{“的行首对齐

2.1 中文乱码

出现中文乱码的问题,是因为Java源文件的字符编码和cmd命令行终端的字符编码不一致导致的。

解决方案1:修改Java源文件的字符编码与cmd命令行终端一致

  • 查看cmd命令行终端字符集:

  • 使用文本编辑器修改字符集:

解决方案2:修改cm命令行终端字符编码与Java源文件保持一致

在Windows系统中,CMD默认编码通常为GBK(代码页936)。如果需要将其修改为UTF-8(代码页65001),可以通过以下方法实现。

  • 临时修改
    此方法仅对当前CMD窗口有效,关闭后设置失效。

    • 打开CMD窗口。输入以下命令:

      chcp 65001
      
    • 执行后,当前CMD窗口的编码即切换为UTF-8。

  • 永久修改
    通过修改注册表,可以使CMD默认编码为UTF-8。

    • 按下 Win + R,输入 regedit 打开注册表编辑器。

    • 导航到以下路径:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
      
    • 在右侧窗格中: 右键选择“新建” > “字符串值”。 将名称设置为 autorun。 双击 autorun,在“数值数据”中输入: chcp 65001

    • 关闭注册表编辑器并重新打开CMD窗口,编码将默认设置为UTF-8

  • 通过系统设置更改
    适用于Windows 10/11较新版本。

    1. 打开“设置”应用。点击“时间和语言”,选择“语言”。

    2. 在“管理语言设置”中,勾选 “使用Unicode UTF-8提供全球语言支持”。

    3. 重启系统以生效。

注意事项
临时修改适合快速测试,永久修改适合长期使用。
修改注册表前建议备份,以防误操作影响系统稳定性。
如果不希望每次打开CMD显示提示信息,可将 autorun 的值改为:chcp 65001>nul
通过以上方法,即可成功将CMD的编码格式切换为UTF-8。

解决方案3:使用javac命令时,指定字符编码
使用javac命令进行编译时添加-encoding UTF-8。如:

javac -encoding UTF-8 HelloWorld.java

2.2 对 “1.1 编写Java源代码” 说明:

class HelloWorld {
	public static void main(String[] args) {
		System.out.println("HelloWorld!你好,地球");
	}
}
  1. class:Java关键字,表示”类”,后面跟着类名。

  2. public static void main(String[] args)方法是Java程序的主入口。
    格式大小写保持一致,如果非要修改,可修改:

    • 方式1:修改数组格式
      public static void main(String args[])

    • 方式2:修改数组名称
      public static void main(String[] a)

  3. 两种常见的输出语句:
    换行输出语句:输出内容,完毕后进行换行,格式如下:

     System.out.println(输出内容);
    

    直接输出语句:输出内容,完毕后不做任何处理,格式如下:

    System.out.print(输出内容);
    

    注意事项
    换行输出语句,括号内可以什么都不写,只做换行处理。
    直接输出语句,括号内什么都不写的话,编译报错。

2.3 对 “1.2 编译源代码” 说明:

  1. 如果编译不通过,可以考虑的问题:
    问题1:查看编译的文件名、文件路径是否正确。
    问题2:查看代码中是否存在语法问题,如果存在,就会导致编译不通过。

  2. 编译以后,根据源文件中定义的类,会生成一个或多个字节码文件。
    每一个字节码文件对应源文件中的一个类,并且字节码文件名与类名相同。

2.4 对 “1.3 解释运行” 说明:

  1. 解释运行是针对于源文件生成后的字节码文件中所对应的Java类进行解释运行的。
    注:严格区分大小写。

  2. 如果运行不通过。可以考虑的问题:
    问题1:查看解释运行的类名、字节码文件路径是否书写正确。
    问题2:代码中可能存在运行时异常。

2.5 源文件与类

  1. 一个源文件(.java)可以包含多个类,但最多只能有一个public类。

  2. 如果源文件中存在public类,那么源文件名必须与该public类的类名完全相同(包括大小写)。这样编译器才能根据文件名快速定位到公共入口。如果允许多个public类,文件名将无法同时匹配多个类名,导致编译混乱(编译报错)。

建议:一个Java源文件中尽量只写一个类,且被public修饰,以便于后续维护。

文章摘自:https://www.cnblogs.com/lisong0626/p/19802402