首页 > 编程语言 >第一个 Java 程序

第一个 Java 程序

时间:2023-01-15 13:55:06浏览次数:35  
标签:Java 第一个 程序 HelloWorld 编译 源代码 class 类名 字节

本节我们将以 Windows 操作系统为例,编写并执行第一个 J**a 程序。在这之前,请确保你的操作系统上已经安装了 JDK

1. 编译程序

大家可能有个疑问,为什么需要编译程序呢?计算机不能直接执行我们编写的源代码吗?

这是由于计算机只能识别由 0 和 1 组成的二进制代码。需要通过编译将源代码转换为计算机认识的二进制代码。

1.1 J**a 中的编译

在 J**a 中,程序不是直接被编译为可执行文件,而是被编译为字节码文件, JVM(J**a 虚拟机)在运行时执行字节码文件。当我们使用 j**ac 编译器时,J**a 源代码文件被编译为字节码文件,字节码文件以扩展名 .class 的形式保存在磁盘上。当程序运行时,字节码文件将被转换为机器代码,并在内存中执行。

总的来说,J**a 源代码需要被 “转换” 两次才能被计算机执行:

  1. J**a 源代码被编译为字节码:由 j**ac 前端编译器完成;
  2. 字节码被编译为机器码:由 JVM 的执行引擎完成。

下图描述了一个 J**a 程序从编写到编译,再到执行的步骤:

1.2 快速执行一个程序

1.2.1 准备工作

为了确保我们人生中第一个 J**a 程序能够顺利执行,请首先确认你已经完成了下面两件事情:

  1. 已经在你的电脑上成功安装 JDK
  2. 有一个文本编辑器。(如 Windows 的记事本,Unix 的 vim)。

1.2.2 编写源代码

新建一个文本,输入如下内容,将其命名为 HelloWorld.j**a 并保存

  1.   public class HelloWorld {
  2.   public static void main(String[] args) {
  3.   System.out.println("Hello World!");
  4.   }
  5.   }

Tips:

  • 文件名必须与类名同名(类名就是上面第一行代码中 class 后面的 HelloWorld),并且扩展名为 .j**a,文件名和类名都区分大小写,所以请确保文件名和类名大小写保持一致;
  • 类的命名约定以大写字母开头;
  • 上述代码中的所有符号,请使用英文半角;
  • 别忽略了代码第三行结尾的分号;
  • 文件名必须与类名同名(类名就是上面第一行代码中 class 后面的 HelloWorld),并且扩展名为 .j**a,文件名和类名都区分大小写,所以请确保文件名和类名大小写保持一致;
  • 类的命名约定以大写字母开头;
  • 上述代码中的所有符号,请使用英文半角;
  • 别忽略了代码第三行结尾的分号;

下面为实操中的截图。

打开记事本,输入源代码:

点击文件 -> 保存,将文件保存到磁盘(此处保存在桌面上),注意:这里要将文件名命名为 HelloWorld.j**a,保存类型选择所有文件,编码选择 UTF-8

1.2.3 编译后执行

现在,打开你常用的命令行工具。(如 Windows 上的命令提示符、MacOS 上的终端),并进入你刚刚保存 J**a 源代码的目录。

在 Windows 搜索栏中输入 cmd 即可打开:

使用 cd 命令,进入到我们刚刚保存源代码的目录(即进入到桌面目录 cd Desktop),使用 dir 命令,查看目录下内容:

使用 j**ac 命令编译源代码:

j**ac HelloWorld.j**a

执行编译命令后,你会发现同一目录下会生成一个 HelloWorld.class 文件,这个 HelloWorld.class 就是我们说的字节码文件。接下来就是通过 JVM 执行字节码文件了,输入下面的命令:

j**a HelloWorld

如果一切正常,你会看到屏幕上输出如下内容:

祝贺你!成功执行了第一个 J**a 程序!

Tips:

  • j**ac 是编译器,而 j**a 是虚拟机,先使用 j**ac 编译器编译源代码,再使用 j**a 虚拟机执行字节码文件。这就是我们上面提到的 j**a 源代码被转换两次到执行的过程。
  • j**a 命令后面的参数是类名。换句话说,我们只需要给虚拟机传递类名作为参数即可,虚拟机会自动查找对应的以.class 为后缀的文件并且执行。
  • j**ac 是编译器,而 j**a 是虚拟机,先使用 j**ac 编译器编译源代码,再使用 j**a 虚拟机执行字节码文件。这就是我们上面提到的 j**a 源代码被转换两次到执行的过程。
  • j**a 命令后面的参数是类名。换句话说,我们只需要给虚拟机传递类名作为参数即可,虚拟机会自动查找对应的以.class 为后缀的文件并且执行。

2. 理解程序

我们现在对上面的 HelloWorld.j**a 代码进行解析:

  1.   public class HelloWorld {
  2.   ...
  3.   }

这段代码表示我们定义了一个公开类,类名为 HelloWorld,按照约定类名首字母要大写。

public 表示这个类是公开的,class 顾名思义,就是类, public 和 class 都是 J**a 中的关键字,必须小写。 花括号 {} 中间为类的定义。

下面我们来看下花括号中间的 main() 方法代码:

  1.   public static void main(String[] args) {
  2.   ...
  3.   }

这段代码表示我们定义了一个入口方法,注意:入口方法是 J**a 程序执行的起点。

public 和 static 分别表示方法是公开的、静态的,void 是方法的返回类型,main 后面的括号 () 用来将方法的参数括起来,String[] 是参数的类型,args 是参数的名称。J**a 规定,某个类定义的 public static void main(String[] args) 是 J**a 程序的固定入口方法。

在方法内部,有一行代码:

        System.out.println("Hello World!");

这行代码的意义就是将 Hello World 这一串字符打印在屏幕上。你可以尝试修改这块内容,将代码中的 Hello World!,替换为其他内容,例如:

  1.   public class HelloWorld {
  2.   public static void main(String[] args) {
  3.   System.out.println("10站长网");
  4.   }
  5.   }

保存源代码,打开命令行,重新编译执行,屏幕上输出的内容将会被成功替换。

3. 小结

本小节我们一起完成了第一个 J**a 程序的执行,在这个过程中,我们了解了编译相关的知识,知道了使用 j**ac 命令,可以将一个.j**a 后缀的源代码文件编译成.class 后缀的字节码文件,使用 j**a 命令,可以执行字节码文件。我们也对程序的基础语法有了大致的了解。如果你对程序的理解还有困惑,也不必担心,在后面的章节中,我们将具体学习 J**a 的基础语法,更加游刃有余地阅读、编写程序。

标签:Java,第一个,程序,HelloWorld,编译,源代码,class,类名,字节
From: https://www.cnblogs.com/10zhan/p/17053389.html

相关文章

  • 如何在应用程序中调用帮助文件?
    在软件中帮助文件是非常重要的,它是用户认识软件的窗口.下面给出怎么样在VB中调用帮助文件的代码.新建一个工程,在窗体上加入控件CommonDialog1,然后在代码窗口添加下面代码(最好......
  • 写了个下载程序 支持Socks5代理
    抽了点时间,写了这个示例程序,功能很简单.通过公司代理下载速度可以达到200多KB/s运行界面如下:可惜不支持多线程,以后再改进了.'-------------------------------------------'......
  • Java入门关于JDK
    Java入门JDKJDK:JavaDevelopmentKitJDK是JavaDevelopmentKit的缩写,是Java的开发工具包。JDK:JavaDevelopmentToolKit(Java开发工具包)。JDK是整个JAVA的核心,包......
  • Error:java: Compilation failed: internal java compiler error 解决办法
    编译时提示错误 Error:java:Compilationfailed:internaljavacompilererror 1、查看项目的jdk(Ctrl+Alt+shift+S)File->ProjectStructure->ProjectSettings->......
  • JAVASE基础强化Day2
    总结:数据类型:基本数据类型,引用数据类型八大基本数据类型:Byte:字节类型:1个字节,8个bit,在内存中开辟8个bit的空间每个bit就是二进制的 Short:2个字节,8*2=16个bit,在内存中......
  • 哪种编程语言更适合编写Selenium Web驱动程序脚本,Python还是Java?
    在本文中,我们将学习哪种编程语言更适合编写SeleniumWeb驱动程序脚本,Python或Java。从选项池中选择理想的编程语言可能很困难。Python,Java和Selenium都有自己的一套功能。越......
  • C++计算矩阵对角线和的程序
    二维数组或矩阵的使用对于几个应用。矩阵行和列用于保存数字。我们可以定义2DC++中的矩阵也使用多维数组。在本文中,我们将了解如何使用C++计算给定方阵的对角线和。矩......
  • Javascript脚本运算符执行顺序对照表
    Javascript脚本运算符执行顺序对照表:在线查看Javascript脚本运算符执行优先级别 ​​窍门:Ctrl+F快速查找​​Javascript脚本运算符优先级,是描述在计算机计算表达式时执行......
  • 《一个程序猿的生命周期》-《发展篇》- 43.从技术向市场转型的感悟。注:对2022年的总结
       完全放弃对技术团队的管理,孤身一人闯市场,确实需要一定的勇气。但是光有勇气就像无头的苍蝇,还得有技术、产品、方案和市场生态,当然最终也有运气的成分。技术、产品......
  • Javascript事件与功能说明大全
    Javascript事件与功能说明大全 ​​窍门:Ctrl+F快速查找​​总结了Javascript常用的各种事件,包括鼠标事件、加载事件、滚动事件、表单事件、编辑事件、数据绑定事件等下表......