关键字与保留字
关键字是 Java 中预先定义好的一些有特别意义的单词,它们是构成 Java 语法的核心。而
保留字则是 Java预先保留,在以后的版本中可能使用到的特殊标识符,在定义类名、变量
名,方法名时,不可以使用关键字和保留字。
标识符与命名规范
- 字符组成:标识符由字母、数字、美元符号($)或下划线(_)组成。标识符不能以数字开头。
- 大小写敏感:Java是大小写敏感的,因此
myVariable
和myvariable
是两个不同的标识符。 - 长度:理论上,标识符的长度没有限制,但过长的标识符会降低代码的可读性。
- 不能使用Java保留字:例如,你不能使用
class
、int
、for
等作为标识符,因为这些是Java的关键字。
数据类型
- 整数类型:
byte
:1字节,范围从-128到127short
:2字节,范围从-32768到32767int
:4字节,范围从-2^31到2^31-1long
:8字节,范围从-2^63到2^63-1
- 浮点类型:
float
:4字节,单精度浮点数double
:8字节,双精度浮点数
- 字符类型:
char
:2字节,用于存储Unicode字符
- 布尔类型:
boolean
:表示逻辑上的真或假,通常用于条件判断
运算符
1. 算术运算符
算术运算符用于执行基本的数学运算。
+
:加法-
:减法*
:乘法/
:除法%
:取模(求余数)
此外,++
和 --
是自增和自减运算符,它们可以放在变量前面(先执行运算再返回)或后面(先返回变量值再执行运算)。
2. 关系运算符(比较运算符)
关系运算符用于比较两个值的大小或是否相等。
>
:大于<
:小于>=
:大于等于<=
:小于等于==
:等于!=
:不等于
关系运算符返回布尔值(true
或 false
),常用于条件判断。
3. 逻辑运算符
逻辑运算符用于执行逻辑运算,通常与布尔值一起使用。
&&
:逻辑与(短路与)||
:逻辑或(短路或)!
:逻辑非(取反)
此外,&
和 |
是按位与和按位或运算符,它们通常用于整数类型数据的位操作。
4. 赋值运算符
赋值运算符用于将值赋给变量。
=
:赋值+=
:加并赋值-=
:减并赋值*=
:乘并赋值/=
:除并赋值%=
:取模并赋值
+=
、-=
等是复合赋值运算符,它们先执行相应的算术运算,然后将结果赋值给变量。
5. 条件(三目)运算符
条件运算符也称为三目运算符,其格式为 条件 ? 表达式1 : 表达式2
。如果条件为真,则运算符的结果为表达式1的值;否则为表达式2的值。
6. 位运算符
位运算符用于执行位级别的操作,如按位与、按位或、按位异或和位移操作等。这些运算符通常用于整数数据类型。
&
:按位与|
:按位或^
:按位异或~
:按位取反<<
:左移>>
:带符号右移>>>
:无符号右移
程序控制
1. 条件语句
条件语句用于根据某个条件(或一组条件)来执行不同的代码块。
if 语句
if (condition) {
// 如果条件为真,执行这里的代码
}
if-else 语句
if (condition) {
// 如果条件为真,执行这里的代码
} else {
// 如果条件为假,执行这里的代码
}
if-else if-else 语句
if (condition1) {
// 如果condition1为真,执行这里的代码
} else if (condition2) {
// 如果condition1为假但condition2为真,执行这里的代码
} else {
// 如果所有条件都不为真,执行这里的代码
}
switch 语句
switch (variable) {
case value1:
// 如果variable等于value1,执行这里的代码
break;
case value2:
// 如果variable等于value2,执行这里的代码
break;
default:
// 如果variable不等于任何case值,执行这里的代码
break;
}
2. 循环语句
循环语句用于重复执行一段代码块,直到满足某个条件为止。
for 循环
for (initialization; condition; update) {
// 循环体,这里的代码会被重复执行
}
while 循环
while (condition) {
// 如果条件为真,执行这里的代码
}
do-while 循环
do {
// 这里的代码至少会被执行一次
} while (condition);
数组
Java中的数组是一种用于存储相同类型数据的数据结构。它们由一组连续的内存空间组成,每个元素都有一个唯一的索引,可以通过索引快速访问任何元素。数组可以存储基本数据类型(如整数、字符等)和对象引用。
创建数组时,需要在声明时指定长度,并通过new来完成数组对象创建操作。例如,声明一个int型的数组可以这样做:int[] a = new int[6];
,这会创建一个可以存储6个整数的数组。如果希望在声明的同时完成数组的赋值,可以使用静态初始化的方式,例如:int[] c = {1, 3, 9, 4, 6, 7, 9};
。静态初始化时,编译器会根据大括号{}
中的元素个数来确定数组的长度,且大括号内的数据类型必须与定义数组的数据类型保持一致。
访问数组元素时,可以使用索引。数组的第一个元素的索引为0,第二个元素的索引为1,以此类推。例如,如果有一个数组int[] array = new int[]{10, 20, 30, 40, 50};
,那么array[0]
的值就是10,array[1]
的值就是20,以此类推。
Java中的数组还支持多维数组,例如二维数组。二维数组中的元素本身也是一维数组。二维数组的长度代表数组中一维数组的个数,而第二个数则代表一维数组中存放元素的个数。例如,可以这样创建一个二维数组:int[][] array = new int[][]{{1, 2, 3}, {4, 5, 6}};
。
对于数组的遍历,可以使用for循环或foreach循环。for循环在遍历过程中可以修改数组中的元素,而foreach循环则不行。例如,使用for循环遍历上述一维数组的代码可以是这样的:for(int i = 0; i < array.length; i++) { System.out.println(array[i]); }
。