Java 词法结构
最后修改于 2024 年 1 月 27 日
在本文中,我们将介绍 Java 中的词法结构。
计算机语言和人类语言一样,都有词法结构。Java 程序的源代码由标记组成。标记是原子代码元素。在 Java 中,我们有注释、标识符、字面量、运算符、分隔符和关键字。
Java 程序由 Unicode 字符集中的字符组成。
Java 注释
注释供人类使用,用于阐明源代码。Java 中有三种类型的注释。
注释类型 | 含义 |
---|---|
// 注释 | 单行注释 |
/* 注释 */ | 多行注释 |
/** 文档 */ | 文档注释 |
如果我们想添加一些小注释,可以使用单行注释。对于更复杂的解释,我们可以使用多行注释。文档注释用于准备自动生成的文档。这通过 javadoc
工具生成。
package com.zetcode; /* This is Comments.java Author: Jan Bodnar ZetCode 2022 */ public class Comments { // Program starts here public static void main(String[] args) { System.out.println("This is Comments.java"); } }
该程序使用两种类型的注释。
// Program starts here
这是一个单行注释的示例。
注释会被 Java 编译器忽略。
/* This is Comments.java /* Author: Jan Bodnar */ ZetCode 2022 */
注释不能嵌套。上面的代码无法编译。
Java 空白符
Java 中的空白符用于分隔源文件中的标记。它也用于提高源代码的可读性。
int i = 0;
在某些地方需要空白符。 例如,在 int
关键字和变量名之间。在其他地方,禁止使用空白符。它们不能出现在变量标识符或语言关键字中。
int a=1; int b = 2; int c = 3;
标记之间放置的空格量与 Java 编译器无关。空白符应在 Java 源代码中一致地使用。
Java 标识符
标识符是变量、方法、类或参数的名称。标识符可以包含字母数字字符、下划线和美元符号 ($)。以数字开头作为变量名是错误的。名称中不允许有空格。
标识符区分大小写。 这意味着 Name
、name
或 NAME
指的是三个不同的变量。标识符也不能与语言关键字匹配。
还有一些与标识符命名相关的约定。名称应该具有描述性。我们不应该为标识符使用隐秘的名称。如果名称由多个单词组成,则每个后续单词都大写。
String name23; int _col; short car_age;
这些是有效的 Java 标识符。
String 23name; int %col; short car age;
这些是无效的 Java 标识符。
以下程序演示了变量名区分大小写。即使该语言允许这样做,也不建议这样做。
package com.zetcode; public class CaseSensitiveIdentifiers { public static void main(String[] args) { String name = "Robert"; String Name = "Julia"; System.out.println(name); System.out.println(Name); } }
Name
和 name
是两个不同的标识符。 在 Visual Basic 中,这是不可能的。 在这种语言中,变量名不区分大小写。
$ java com.zetcode.CaseSensitiveIdentifiers Robert Julia
Java 字面量
字面量是某种类型特定值的文本表示形式。字面量类型包括布尔值、整数、浮点数、字符串、null 或字符。 从技术上讲,字面量将在编译时赋值,而变量将在运行时赋值。
int age = 29; String nationality = "Hungarian";
在这里,我们将两个字面量分配给变量。 数字 29 和字符串“Hungarian”是字面量。
package com.zetcode; public class Literals { public static void main(String[] args) { int age = 23; String name = "James"; boolean sng = true; String job = null; double weight = 68.5; char c = 'J'; System.out.format("His name is %s%n", name); System.out.format("His is %d years old%n", age); if (sng) { System.out.println("He is single"); } else { System.out.println("He is in a relationship"); } System.out.format("His job is %s%n", job); System.out.format("He weighs %f kilograms%n", weight); System.out.format("His name begins with %c%n", c); } }
在上面的例子中,我们有几个字面量值。 23 是一个整数文字。“James”是一个字符串字面量。 true
是一个布尔字面量。 null
是表示缺失值的字面量。 68.5 是一个浮点字面量。 'J' 是一个字符字面量。
$ java com.zetcode.Literals His name is James His is 23 years old He is single His job is null He weighs 68.500000 kilograms His name begins with J
Java 运算符
运算符是用于对某个值执行操作的符号。运算符用于表达式中,以描述涉及一个或多个操作数的操作。
+ - * / % ^ & | ! ~ = += -= *= /= %= ^= ++ -- == != < > &= >>= <<= >= <= || && >> << ?:
这是 Java 运算符的部分列表。我们将在本教程的后面部分讨论运算符。
Java 分隔符
分隔符是一个或多个字符的序列,用于指定纯文本或其他数据流中各个独立区域之间的边界。
[ ] ( ) { } , ; . "
String language = "Java";
双引号用于标记字符串的开头和结尾。分号 ;
字符用于结束每个 Java 语句。
System.out.println("Java language");
圆括号(小括号)始终跟在方法名称之后。在圆括号之间,我们声明输入参数。即使该方法不接受任何参数,也存在圆括号。System.out.println
方法接受一个参数,一个字符串值。点字符将类名 (System
) 与成员 (out
) 分隔开来,并将成员与方法名称 (println
) 分隔开来。
int[] array = new int[5] { 1, 2, 3, 4, 5 };
方括号 []
用于表示数组类型。它们也用于访问或修改数组元素。花括号 {}
用于初始化数组。花括号也用于括住方法或类的主体。
int a, b, c;
逗号字符分隔单个声明中的变量。
Java 关键字
关键字是 Java 语言中的保留字。 关键字用于在计算机程序中执行特定任务。 例如,定义变量、执行重复性任务或执行逻辑运算。
Java 拥有丰富的关键字。 本教程将解释其中许多内容。
abstract continue for new switch assert default goto package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum instanceof return transient catch extends int short try char final interface static var class finally long strictfp void const float native super volatile while
在以下小程序中,我们使用了几个 Java 关键字。
package com.zetcode; public class Keywords { public static void main(String[] args) { for (int i = 0; i <= 5; i++) { System.out.println(i); } } }
package
、public
、class
、static
、void
、int
、for
标记是 Java 关键字。
Java 约定
约定是程序员在编写源代码时遵循的最佳实践。 每种语言都可以有自己的一套约定。 约定不是严格的规则; 它们只是编写高质量代码的建议。 我们提到了一些被 Java 程序员认可的约定。 (通常也被其他程序员认可)。
- 类名以大写字母开头。
- 方法名以小写字母开头。
- 当同时使用 public 关键字和 static 关键字时,public 关键字位于 static 关键字之前。
main
方法的参数名称称为 args。- 常量以大写字母书写。
- 标识符名称中的每个后续单词都以大写字母开头。
来源
在本文中,我们介绍了 Java 语言的一些基本词法。
作者
列出所有Java教程。