Nibbles Blog Nibbles Blog
  • 专题汇总
    • 技术学习
    • 个人成长
    • 运营技能
    • 自媒体
    • Minecraft
  • 推荐
    • 好物推荐
    • APP推荐
  • 关于我
    • Nibbles Studio
  • 友情链接
首页 › 技术学习 › Java上的HelloWorld,怎么这么多细节?

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

Avatar photo
Nibbles 尼布
8 7 月, 2024

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

B站直达课程

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

Java的跨平台性

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

核心机制(JVM):

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

编译和运行流程:

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

注意命令!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窗口的代码页编码和代码编辑器中显示的文件编码是否相同(以下可展开)
  • 若输出内容包含中文,务必要设置中文编码GBK或UTF-8
如何查看cmd窗口的代码页编码?

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

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

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

如何按指定编码保存?

以VSCode编辑器为例,

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

执行命令依次为

javac Hello.java
java Hello

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

其他Tips

  • 编译后,源文件中每一个类都会对应每一个字节码文件,对应依据就是同名
  • 【再提一下】如果源文件包含一个public类则文件名必须按该类名命名!
  • 一个源文件中最多只能有一个public类。其它类的个数不限。也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。main可以在不同类中。
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
Java
1
0
Avatar photo
Nibbles 尼布
向着终生成长者迈进!
赞赏

评论 (0)

取消
    发表评论

猜你喜欢

  • 运算符 | Java语言基础
  • 变量详解 | Java语言基础
  • 初识 Java 及数据类型 | Java语言基础

公众号同步更新

🔍微信搜一搜“尼布技术志”
  • SiteMap
  • Umami
  • CSDN
  • xLog「待开放」
  • Substack「待开放」
Copyright © 2022-2025 Nibbles Blog. Designed by nicetheme. 浙公网安备33038102332481号 浙ICP备2024120131号
旗下产品: 匿补阁 个人工作室主页 Nibbles AI 匿补阁小商城 匿补阁CardShop NavP
  • C语言4
  • Java4
  • python2
  • AI2
  • 公众号2
  • 专题汇总
    • 技术学习
    • 个人成长
    • 运营技能
    • 自媒体
    • Minecraft
  • 推荐
    • 好物推荐
    • APP推荐
  • 关于我
    • Nibbles Studio
  • 友情链接