2.1java基础语法
注释
在 Java 里,注释是用来解释代码用途、提升代码可读性的文本,编译时会被编译器忽略。Java 提供了三种注释方式
单行注释
以 //
开头,从 //
开始到该行末尾的所有内容都属于注释。一般用于对某一行代码进行简单解释。
// 这是一个单行注释,下面这行代码用于输出 Hello, World!
System.out.println("Hello, World!");
多行注释
以 /*
开头,以 */
结尾,中间的内容都是注释,可跨越多行。常用于对一段代码或者一个方法进行详细解释。
/*
这是一个多行注释,
下面的代码定义了一个名为 add 的方法,
该方法用于计算两个整数的和。
*/
public int add(int a, int b) {return a + b;
}
文档注释
以 /**
开头,以 */
结尾,可跨越多行。主要用于为类、方法、字段等生成 API 文档。JDK 自带的 javadoc
工具能够将文档注释提取出来生成 HTML 格式的 API 文档。
/*** 这是一个文档注释,用于描述一个简单的计算器类。* 该类包含一个 add 方法,用于计算两个整数的和。*/
public class Calculator {/*** 计算两个整数的和。* * @param a 第一个整数* @param b 第二个整数* @return 两个整数的和*/public int add(int a, int b) {return a + b;}
}
在上述文档注释中,@param
用来描述方法的参数,@return
用于描述方法的返回值。借助 javadoc
工具可以生成包含这些信息的 API 文档。
javadoc Calculator.java
此命令会在当前目录下生成一个包含 API 文档的 HTML 文件。
为多个文件生成文档
若要为多个 Java 文件生成文档,可以指定多个文件名,用空格分隔:
javadoc Calculator.java AnotherClass.java
为整个包生成文档
若要为整个包生成文档,可以使用 -d
选项指定输出目录,使用 -subpackages
选项指定要生成文档的包:
javadoc -d doc -subpackages com.example
此命令会在 doc
目录下生成 com.example
包及其子包的 API 文档。
Java 语句与分号
Java 里,语句的确是以分号(;
)结尾的。分号是 Java 语法的一部分,用于明确标识一条语句的结束。
除了 Java,还有很多编程语言使用分号来结束语句,比如:
- C 和 C++:作为系统级编程语言,C 和 C++ 都要求语句以分号结尾,这有助于编译器准确识别语句边界。
- JavaScript:尽管 JavaScript 可以省略分号(自动分号插入机制ASI),但为了代码的清晰性和避免潜在问题,很多开发者还是习惯使用分号来结束语句。
字面量
整数类型字面量
整数类型字面量表示整数数值,在 Java 中有以下几种表示方式:
十进制
最常见的表示方式,由 0 - 9 的数字组成。
int decimalNumber = 123;
二进制
以 0b
或 0B
开头,由 0 和 1 组成。
int binaryNumber = 0b101; // 相当于十进制的 5
八进制
以 0
开头,由 0 - 7 的数字组成。
int octalNumber = 012; // 相当于十进制的 10
十六进制
以 0x
或 0X
开头,由 0 - 9、A - F(或 a - f)组成。
int hexadecimalNumber = 0xFF; // 相当于十进制的 255
浮点类型字面量
浮点类型字面量用于表示带小数的数值,在 Java 中有单精度 float
和双精度 double
两种类型。
双精度浮点型(double
)
默认情况下,浮点数字面量是 double
类型。
double doubleNumber = 3.14;
单精度浮点型(float
)
若要表示 float
类型的字面量,需在数字后面加上 f
或 F
。
float floatNumber = 3.14f;
字符类型字面量
字符类型字面量用单引号 '
括起来,表示单个字符。
char charLiteral = 'A';
字符串类型字面量
字符串类型字面量用双引号 "
括起来,表示多个字符组成的序列。
String stringLiteral = "Hello, World!";
布尔类型字面量
布尔类型字面量只有两个值:true
和 false
,用于表示逻辑真和逻辑假。
boolean trueValue = true;
boolean falseValue = false;
空类型字面量
在 Java 中,空类型字面量只有一个值:null
,用于表示一个引用不指向任何对象。
String nullString = null;
变量的定义与声明
在 Java 里,要使用变量,需先进行声明。声明变量时,要指定变量的类型和名称。格式如下:
数据类型 变量名;
例如,声明一个整数类型的变量:
int number;
这里,int
是数据类型,表示整数;number
是变量名。
变量的初始化
变量声明后,可以对其进行初始化,也就是给变量赋值。可以在声明变量时直接初始化,也可以先声明再初始化。
// 声明时直接初始化
int age = 20;
// 先声明后初始化
int score;
score = 90;
变量的命名规则
在 Java 中,变量的命名需要遵循一定的规则:
- 变量名只能包含字母、数字、下划线
_
和美元符号$
。 - 变量名不能以数字开头。
- 变量名不能是 Java 的关键字(如
int
、class
等)。 - 变量名区分大小写。
此外,为了提高代码的可读性,变量名通常采用有意义的名称,遵循驼峰命名法(如 studentName
)。
Java 关键字
Java 关键字是被 Java 语言赋予特定含义的保留字,在代码里不能把它们用作变量名、类名、方法名等标识符。Java 有 50 个关键字:
数据类型相关
- 基本数据类型
byte
:用于声明字节类型的变量,占 8 位。short
:声明短整型变量,占 16 位。int
:声明整型变量,占 32 位,是最常用的整数类型。long
:声明长整型变量,占 64 位,使用时通常在数字后面加L
或l
。float
:声明单精度浮点型变量,占 32 位,使用时数字后要加f
或F
。double
:声明双精度浮点型变量,占 64 位,是默认的浮点类型。char
:声明字符类型变量,占 16 位,用单引号括起来。boolean
:声明布尔类型变量,值只能是true
或false
。
- 引用数据类型
class
:用于定义类。interface
:用于定义接口。enum
:用于定义枚举类型。
流程控制相关
- 条件语句
if
:用于条件判断。else
:与if
配合使用,处理条件不成立的情况。switch
:用于多分支选择。case
:在switch
语句中,用于匹配不同的情况。default
:在switch
语句中,当所有case
都不匹配时执行。
- 循环语句
for
:用于已知循环次数的循环。while
:用于不确定循环次数,先判断条件再执行循环体。do
:与while
配合,构成do - while
循环,先执行一次循环体再判断条件。break
:用于跳出当前循环或switch
语句。continue
:用于跳过本次循环的剩余部分,直接进入下一次循环。
- 异常处理
try
:用于包裹可能会抛出异常的代码块。catch
:用于捕获并处理try
块中抛出的异常。finally
:无论try
块中是否抛出异常,finally
块中的代码都会执行。throw
:用于手动抛出一个异常。throws
:用于在方法声明中指定该方法可能抛出的异常。
访问控制与修饰符相关
- 访问控制
private
:表示私有访问权限,只有在类内部可以访问。protected
:表示受保护的访问权限,同一包内和不同包的子类可以访问。public
:表示公共访问权限,任何地方都可以访问。
- 其他修饰符
static
:用于修饰类的成员,使其属于类而不是类的实例。final
:用于修饰类、方法或变量,表示不可变或不可继承。abstract
:用于修饰类或方法,表示抽象类或抽象方法。synchronized
:用于实现线程同步。volatile
:用于保证变量的可见性。
其他关键字
import
:用于导入其他包中的类或接口。package
:用于声明类所在的包。this
:表示当前对象的引用。super
:表示父类对象的引用。instanceof
:用于判断一个对象是否是某个类或接口的实例。void
:用于表示方法没有返回值。const
:是 Java 保留关键字,但目前未使用。goto
:是 Java 保留关键字,但目前未使用。