Java上的HelloWorld,怎么这么多细节?

课程链接见下(不是推广,只是优秀的课程应该被广泛传播。)

本文就只列了一些课程重点和我踩过的一堆坑,新手学Java,我们相互学习交流。

Java的跨平台性

核心机制(JVM):

1)JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令管理数据、内存、寄存器,包含在JDK中。
2)对于不同的平台,有不同的虚拟机。
3)Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”(跨平台)。

编译和运行流程:

注意命令!javac是编译,java才是运行。*.java为源文件,*.class为字节码文件。

若程序无错是无任何提示,默默地在同目录下生成字节码文件。但是有错会报错在cmd,无法编译。

运行的本质是把字节码文件装载到JVM虚拟机内执行。

修改后的源文件需要重新编译,才能在再执行中生效。(并非前端的所改即得)

Hello World!

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

细节,注意!有的是真实踩过的坑,有的是老师的提醒。

  • print后面的字母是小写的L,即l。意为line“(行),在输出之后会自动添加一个换行符(\n。若不慎打成了printIn则会报错提示找不到这个方法。Java语言严格区分大小写
    有关打印到屏幕上的方法就System.out.println()System.out.print()
  • main(){}间的空格是为了编程规范,程序能跑,但适当的空格有利于协作者的阅读。
  • 但是Java应用程序的执行入口是main()方法。
    它有固定的书写格式public static void main(String[] args)(…)
  • 每条花括号内的语句的后面要以;分号结束,凡是括号都是成对出现的。
  • public class后的类名要和文件名保持一致(因为Java类 Hello 被声明为 public
  • 注意在编译时cmd窗口的代码页编码和代码编辑器中显示的文件编码是否相同(以下可展开)
  • 若输出内容包含中文,务必要设置中文编码GBKUTF-8
如何查看cmd窗口的代码页编码?

右键cmd窗口标题栏,属性→当前代码页

不推荐更改代码页编码,其更改注册表比较繁琐。文件转编码其实更快。

如何按指定编码保存?

以VSCode编辑器为例,

执行命令依次为

javac Hello.java
java Hello

注意后面的指令不用带.class后缀,因为类的名字就是Hello

其他Tips

  • 编译后,源文件中每一个类都会对应每一个字节码文件,对应依据就是同名
  • 【再提一下】如果源文件包含一个public类则文件名必须按该类名命名!
  • 一个源文件中最多只能有一个public类。其它类的个数不限。也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。main可以在不同类中。

评论

7 条对“Java上的HelloWorld,怎么这么多细节?”的回复

  1. ply88okvip 的头像

    Hey everyone, just stumbled upon ply88okvip. Seems like a new spot. Haven’t deposited anything yet, but the interface is slick. Gonna explore a bit and see if it’s legit. Fingers crossed! More soon. Give it a look ply88okvip.

  2. pk67game 的头像

    Alright guys, been checking out pk67game lately. Site’s not bad, got some interesting games. Need to spend more time to really see what’s up, but first impressions are decent. Giving it a shot! Check it out pk67game.

  3. boocasinologin 的头像

    Just trying to quickly log into Boocasino. Hope it’s a smooth process so I can start playing ASAP! Find the login here: boocasinologin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注