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
0
0
Avatar photo
Nibbles 尼布
向着终生成长者迈进!
赞赏

评论 (0)

取消
    发表评论

猜你喜欢

  • 从本质理解指针的那些知识 | C语言基础
  • 从猜数字程序来理解结构和随机数 | C语言基础
  • 谈谈printf()和scanf() | C语言基础
Avatar photo

Nibbles 尼布

向着终生成长者迈进!
24
文章
4
评论
35
获赞

多平台更新

▲ “尼布是我”小程序
▲ 个人公众号

热门文章

TOP1
Python数据分析 Ⅰ:pandas模块
7 6 月, 2023
TOP2
更大挑战,更多机遇 | 2023 年终总结
8 1 月, 2024
TOP3
【杂谈】真的需要系统地学那么多编程语言吗?
14 8 月, 2024

标签云

AI (2) anaconda (1) Bilibili (1) Cookie (1) CS50x (1) CTF (1) C语言 (4) Git (1) Github (1) HTTP (1) Java (1) matplotlib module (1) Minecraft (2) NamelessMC (1) pandas module (1) PHP (1) python (2) Serverless (1) vim (1) VuePress (1) WordPress (1) zeabur (1) 公众号 (2) 年终总结 (2) 思维导图 (1) 换源 (1) 数据库 (1) 杂谈 (1) 浪前 (2) 自媒体 (2) 解密 (1) 运营 (2) 飞书 (1)

支持我!

Blog Circle

开往-友链接力
博客录(boke.lu) 随机博客
博客圈
  • SiteMap
  • Umami
  • xLog
  • Substack
Copyright © 2022-2025 Nibbles Blog. Designed by nicetheme. 浙公网安备33038102332481号 浙ICP备2024120131号
技术博客: AHdark Blog Tkong Blog iVampireSP 的物语 我不是咕咕鸽 热心市民 L 先生 ncc的个人网站 岚天小窝 天远笔记
  • C语言4
  • python2
  • AI2
  • 公众号2
  • 运营2
  • 专题汇总
    • 技术学习
    • 个人成长
    • 运营技能
    • 自媒体
    • Minecraft
  • 推荐
    • 好物推荐
    • APP推荐
  • 关于我
    • Nibbles Studio
  • 友情链接