Java 基础

您所在的位置:网站首页 holle中文是什么意思 Java 基础

Java 基础

2024-07-02 13:40| 来源: 网络整理| 查看: 265

“Hello, world"程序是指在计算机屏幕上输出“Hello, world”这行字符串的计算机程序,“hello, world”的中文意思是“你好,世界。”。因为《The C Programming Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。

文章目录 Java 源程序Hello World编译 && 执行程序拓展 HelloWorldPATH 和 CLASSPATH

Java 源程序

也称源代码,是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。

在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。

Hello World

首先,来看下使用 Java 语言编写 HelloWorld 源程序的全貌:

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

在这段源程序的代码虽然非常少,但是我们能从中得到如下信息:

public 修饰符用于限定类或类成员的访问级别class 关键字用于定义类,该类的标识符 是 HelloWorld类标识符的命名一般采用 帕斯卡命名法HelloWorld 类被 public 修饰,应在名为 HelloWorld.java 的文件中声明类标识符后紧跟一对大括号,类成员一般定义在这对大括号中,例如实例成员或者静态成员static 关键字用于声明静态成员,这里定义的是一个静态函数,标识符是 main函数标识符的命名一般采用 驼峰命令法void 关键字用于定义无返回值的函数main 函数是 Java 程序的主入口函数函数标识符后紧跟一对小括号,形式参数一般定义在这对小括号中,这些形式参数在程序运行时可用于接受来自外部传入的实际参数String 关键字用于定义字符串类型的变量String[] 用于定义字符串类型的数组,该数组的标识符是 args该源程序中的 main 函数的函数签名是:public static void main(String[] args)在函数签名后紧跟一堆大括号,代码块一般定义在这对大括号中,大括号(包括大括号本身)内的所有代码的集合被称之为函数体一个完整的函数成员是由函数签名和函数体组成System 是来自 java.lang 包下的一个类out 是 System 类中的一个静态成员,它是 java.io 包下 PrintStream 类的实例println 是 out 提供的一个实例成员,而且是函数成员访问静态成员的语法是 类名.成员名,访问实例成员的语法是 实例名.成员名在代码中调用一个函数时需要在该函数名后跟一对小括号,如果该函数需要传递参数,则将对应的实际参数按类型和顺序写到小括号中,并使用英文逗号隔开即可定义字符串的字面量是直接将字符串写在双引号中,例如 "Hello World!"分号代表一行或者一段代码的结束

作为初学者,对以上叙述的内容有部分可能不太理解,但不用着急,随着学习的深入,这些都会慢慢地被理解,我也会在后面的文章中详细阐述。

您在这段源程序中看到了哪些信息呢?在评论区留言给我吧!

编译 && 执行程序

在源程序所在目录下执行如下命令可对当前编写的源程序进行编译

javac HelloWorld.java

在编译结束后,会产生一个 .class 文件,这就是《搭建本地软件开发环境 》中提到的字节码文件,使用如下命令可将该字节码文件通过 JVM 解释给计算机并执行。

java HelloWorld

在 DOS 中,我们可以使用 && 将多个命令写到一条指令中,使其按顺序执行,关于这个我在《常用DOS命令 》一文中有提及。

cls && javac HelloWorld.java && java HelloWorld

当我们修改源程序中的字面量后,重新执行上述指令,会发现命令行打印了新的字面量信息。但如果字面量中包含中文的话,例如 "您好,世界!",就会乱七八糟的文字,这是因为 javac 指令在编译源程序的时候,默认的字符集不支持中文,我们需要为其指定支持中文的字符集,一般情况下,我们选择UTF-8字符集,修改编译指令如下:

javac -encoding UTF8 HelloWorld.java 拓展 HelloWorld

我们使用 java 指令执行 java 程序的时候,我们采用的指令是:java HelloWorld,我们在第二章节中搭建开发环境的时候说到过我们需要通过配置环境变量使得 java 指令能够在命令行中全局可用。这里的 java 指令实际上就是存在于 Window 操作系统磁盘上一个可执行的程序,也就是 JDK 中 bin 目录下的 java.exe,如图所示:

java指令的位置 到这里我们知道了,之前修改系统环境变量 Path 的值,将该目录加入其中的目的是为了系统能找到这个指令。这个道理就跟我们在某个目录下找到一个可执行程序,双击启动该程序的道理一样。

在指令 java HelloWorld 中,java 程序是系统来执行的,而 HelloWorld 则是系统在执行java 程序的时候我们传递给这个程序的参数。这就好比在第一章提到的 CD 指令一样,当我们给 CD 指令传递参数是 .. 的时候,系统在执行CD这个程序后,会将当前目录切换到上级目录;当我们给 CD 指令传递参数是 / 的时候,系统在执行CD这个程序后,会将当前目录切换到根目录 。话说回来,我们给 java 指令传递的参数是 HelloWorld,那 java 这个程序在执行过程中,会在当前目录和环境变量指定的 CLASSPATH 目录下查找 HelloWorld.class 文件,如果找到了该字节码文件,则通过 JVM 来解释并执行,如果依然找不到这个源程序,则会提示 错误: 找不到或无法加载主类 HelloWorld 。

注:关于 CLASSPATH 的详细说明请参考文末的 PATH 和 CLASSPATH 段落。

关于 JVM,百度百科上的描述是 —— 它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。那这个虚构的计算机在解释并执行 java 字节码的时候,能像 DOS 那样传递参数吗? JVM在百度百科上的解释 注:此图截自 2020年二月,仅作参考,因为百科上的内容可被编辑,故而,若您看到的说明不是此图上的内容,请以官方的为准。

DOS 在执行一个程序的时候,将程序名后面的文本看作是参数,那么,我们把 JVM 也看作是一个计算机操作系统的话,那大致可以这样理解:

java 指令在 DOS 和JVM 中的不同 换句话说,站在 DOS 的角度,传递了 HelloWorld 和 Hello 两个参数;而在 JVM 的角度,传递了Hello这一个参数。那既然我们传递了参数给 HelloWorld 程序,那 HelloWorld 程序如何接收到该参数,并作出相应的处理呢?

在上文中,我们看到 main 函数的形式参数 args 貌似都没有什么用处,实际上他就是为了接收外部传递的参数而存在的,关于形式参数的用法将会在后面分享函数的章节中详细为大家介绍。修改 HelloWorld.java 的代码如下:

public class HelloWorld { public static void main(String[] args) { System.out.println("您好,世界!"); if(args == null || args.length


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3