目录
一.数据类型
(一)数值类型(用于存储数字,包括整数和浮点数)
1. **整数类型**
2. **浮点类型**
(二)非数值类型(非数值类型用于存储非数字数据)
1. **char**
2. **boolean**
二.变量与常量
No.1 变量(是存储数据的容器,用于在程序运行过程中存储和操作数据)
(一)变量的声明
(二)变量的初始化
(三)变量的使用
(四)变量的作用域
No.2 常量(是值不能改变的量,用于存储固定不变的数据)
(一)常量的声明
(二)常量的特点
(三)常量的作用
No.3 示例代码
No.4 变量和常量的命名规则
三.运算符
(一)算术运算符(用于执行基本的数学运算)
(二)比较运算符(用于比较两个值的大小,结果为布尔值即true 或 false)
(三)逻辑运算符(用于组合多个条件,结果为布尔值)
(四)位运算符(用于对整数的二进制位进行操作)
(五)赋值运算符(用于将值赋给变量,也可以与其他运算符结合使用)
(六)条件运算符或三元运算符(用于根据条件选择两个值中的一个)
(七)示例代码
四.控制流程语句
(一)条件语句(用于根据条件的真假来决定是否执行某些代码块)
1.if语句
2.if-else语句
3.if-else if-else语句
4.switch语句
(二)循环语句(用于重复执行某段代码,直到满足某个条件为止)
1.for循环(用于循环次数已知的情况)
2.while循环(先判断条件,条件为真时执行循环体)
3.do-while循环(先执行一次循环体,然后再判断条件)
(三)跳转语句(用于在循环中控制程序的执行流程)
1.break语句(用于终止循环或switch语句)
2.continue语句(用于跳过当前循环的剩余部分,继续执行下一次循环)
3.return语句(用于从方法中返回值,也可以用于终止方法的执行)
(四)示例代码
一.数据类型
(一)数值类型(用于存储数字,包括整数和浮点数)
1. **整数类型**
- **byte**
- **大小**:1 个字节(8 位)
- **范围**:-128 到 127
- **特点**:占用内存空间小,适合存储小范围的整数数据。例如,`byte b = 100;`。
- **short**
- **大小**:2 个字节(16 位)
- **范围**:-32768 到 32767
- **特点**:比 `byte` 类型范围大,但仍比 `int` 类型小,适用于存储中等范围的整数数据。例如,`short s = 30000;`。
- **int**
- **大小**:4 个字节(32 位)
- **范围**:-2147483648 到 2147483647
- **特点**:这是最常用的一种整数类型,范围足够大,适用于大多数整数运算。例如,`int i = 1000000;`。
- **long**
- **大小**:8 个字节(64 位)
- **范围**:-9223372036854775808 到 9223372036854775807
- **特点**:用于存储非常大的整数,例如在处理大数字运算或时间戳等场景。定义时需要在数值后面加上“L”或“l”,如 `long l = 123456789012345L;`。
2. **浮点类型**
- **float**
- **大小**:4 个字节(32 位)
- **特点**:用于存储单精度浮点数,精度较低,但占用内存空间较小。定义时需要在数值后面加上“f”或“F”,如 `float f = 3.14f;`。
- **double**
- **大小**:8 个字节(64 位)
- **特点**:用于存储双精度浮点数,精度高,是浮点数运算的默认类型。例如,`double d = 3.1415926;`。
(二)非数值类型(非数值类型用于存储非数字数据)
1. **char**
- **大小**:2 个字节(16 位)
- **特点**:用于存储单个字符,采用 Unicode 编码。字符需要用单引号括起来,如 `char c = 'A';`。
2. **boolean**
- **大小**:通常认为占用 1 个字节(实际大小取决于 JVM 实现)
- **特点**:用于存储布尔值,只有两个可能的值:`true` 和 `false`。常用于条件判断,如 `boolean isTrue = true;`。
二.变量与常量
No.1 变量(是存储数据的容器,用于在程序运行过程中存储和操作数据)
(一)变量的声明
数据类型 变量名;
例如:
int age;
double salary;
(二)变量的初始化
数据类型 变量名 = 初始值;
例如:
int age = 25;
double salary = 5000.5;
(三)变量的使用
变量可以在程序中被赋值、读取和修改。
age = 30; // 修改变量值
System.out.println(age); // 输出变量值
(四)变量的作用域
变量的作用域是指变量可以被访问的范围。
- **局部变量**:在方法或代码块中声明,只能在该方法或代码块中使用。
- **成员变量**:在类中声明,属于类的实例,可以在整个类中使用。
- **类变量(静态变量)**:在类中声明,使用 `static` 关键字修饰,属于类本身,可以通过类名访问。
No.2 常量(是值不能改变的量,用于存储固定不变的数据)
(一)常量的声明
常量使用 `final` 关键字声明。
final 数据类型 常量名 = 常量值;
例如:
final double PI = 3.14159;
(二)常量的特点
- 常量的值在声明后不能修改。
- 常量名通常使用大写字母,单词之间用下划线分隔,以提高可读性。
(三)常量的作用
- **提高代码可读性**:使用常量名代替具体的值,使代码更易理解。
- **避免硬编码**:减少代码中直接出现的固定值,便于维护和修改。
No.3 示例代码
public class VariableAndConstantExample {
// 类变量(静态变量)
static final double PI = 3.14159;
// 成员变量
int radius;
public static void main(String[] args) {
// 局部变量
int age = 25;
// 使用局部变量
System.out.println("Age: " + age);
// 创建对象并使用成员变量
VariableAndConstantExample example = new VariableAndConstantExample();
example.radius = 5;
// 使用类变量
double circumference = 2 * PI * example.radius;
System.out.println("Circumference: " + circumference);
}
}
No.4 变量和常量的命名规则
- **变量名和常量名**:
- 不能以数字开头
- 只能包含字母、数字、下划线(_)和美元符号($)
- 是大小写敏感的
- **变量名**:
- 通常使用小写字母开头,单词之间用驼峰命名法(如 `myVariableName`)
- **常量名**:
- 通常使用大写字母,单词之间用下划线分隔(如 `MY_CONSTANT_NAME`)
三.运算符
(一)算术运算符(用于执行基本的数学运算)
| 运算符 | 描述 | 示例 | 结果 |
|--------|--------------------------|------------------|--------------|
| `+` | 加法 | `a + b` | `5 + 3 = 8` |
| `-` | 减法 | `a - b` | `5 - 3 = 2` |
| `*` | 乘法 | `a * b` | `5 * 3 = 15` |
| `/` | 除法 | `a / b` | `5 / 3 = 1` |
| `%` | 取模(求余) | `a % b` | `5 % 3 = 2` |
| `++` | 自增(加1) | `a++` 或 `++a` | `a = a + 1` |
| `--` | 自减(减1) | `a--` 或 `--a` | `a = a - 1` |
(二)比较运算符(用于比较两个值的大小,结果为布尔值即true 或 false)
| 运算符 | 描述 | 示例 | 结果 |
|--------|--------------------------|------------------|--------------|
| `==` | 等于 | `a == b` | `5 == 3` → `false` |
| `!=` | 不等于 | `a != b` | `5 != 3` → `true` |
| `>` | 大于 | `a > b` | `5 > 3` → `true` |
| `>=` | 大于等于 | `a >= b` | `5 >= 3` → `true` |
| `<` | 小于 | `a < b` | `5 < 3` → `false` |
| `<=` | 小于等于 | `a <= b` | `5 <= 3` → `false` |
(三)逻辑运算符(用于组合多个条件,结果为布尔值)
| 运算符 | 描述 | 示例 | 结果 |
|--------|--------------------------|-----------------------------|--------------|
| `&&` | 逻辑与(AND) | `a > 0 && b < 10` | `true && false` → `false` |
| `||` | 逻辑或(OR) | `a > 0 || b < 10` | `true || false` → `true` |
| `!` | 逻辑非(NOT) | `!(a > 0)` | `!true` → `false` |
(四)位运算符(用于对整数的二进制位进行操作)
| 运算符 | 描述 | 示例 | 结果 |
|--------|--------------------------|------------------|--------------|
| `&` | 位与 | `a & b` | `5 & 3 = 1` |
| `|` | 位或 | `a | b` | `5 | 3 = 7` |
| `^` | 位异或 | `a ^ b` | `5 ^ 3 = 6` |
| `~` | 位非 | `~a` | `~5 = -6` |
| `<<` | 左移 | `a << 2` | `5 << 2 = 20`|
| `>>` | 右移(符号位填充) | `a >> 2` | `5 >> 2 = 1` |
| `>>>` | 无符号右移(零填充) | `a >>> 2` | `5 >>> 2 = 1`|
(五)赋值运算符(用于将值赋给变量,也可以与其他运算符结合使用)
| 运算符 | 描述 | 示例 | 等价于 |
|--------|--------------------------|------------------|--------------|
| `=` | 简单赋值 | `a = b` | `a = b` |
| `+=` | 加法赋值 | `a += b` | `a = a + b` |
| `-=` | 减法赋值 | `a -= b` | `a = a - b` |
| `*=` | 乘法赋值 | `a *= b` | `a = a * b` |
| `/=` | 除法赋值 | `a /= b` | `a = a / b` |
| `%=` | 取模赋值 | `a %= b` | `a = a % b` |
| `&=` | 位与赋值 | `a &= b` | `a = a & b` |
| `|=` | 位或赋值 | `a |= b` | `a = a | b` |
| `^=` | 位异或赋值 | `a ^= b` | `a = a ^ b` |
| `<<=` | 左移赋值 | `a <<= 2` | `a = a << 2` |
| `>>=` | 右移赋值 | `a >>= 2` | `a = a >> 2` |
| `>>>=` | 无符号右移赋值 | `a >>>= 2` | `a = a >>> 2`|
(六)条件运算符或三元运算符(用于根据条件选择两个值中的一个)
| 运算符 | 描述 | 示例 | 结果 |
|--------|--------------------------|-----------------------------|--------------|
| `? :` | 条件运算符 | `a > b ? x : y` | `5 > 3 ? 10 : 20` → `10` |
(七)示例代码
public class OperatorExample {
public static void main(String[] args) {
int a = 5;
int b = 3;
// 算术运算符
System.out.println("a + b = " + (a + b)); // 8
System.out.println("a - b = " + (a - b)); // 2
System.out.println("a * b = " + (a * b)); // 15
System.out.println("a / b = " + (a / b)); // 1
System.out.println("a % b = " + (a % b)); // 2
// 比较运算符
System.out.println("a == b: " + (a == b)); // false
System.out.println("a != b: " + (a != b)); // true
System.out.println("a > b: " + (a > b)); // true
System.out.println("a >= b: " + (a >= b)); // true
System.out.println("a < b: " + (a < b)); // false
System.out.println("a <= b: " + (a <= b)); // false
// 逻辑运算符
System.out.println("a > 0 && b < 10: " + (a > 0 && b < 10)); // true
System.out.println("a > 0 || b < 10: " + (a > 0 || b < 10)); // true
System.out.println("!(a > 0): " + !(a > 0)); // false
// 位运算符
System.out.println("a & b = " + (a & b)); // 1
System.out.println("a | b = " + (a | b)); // 7
System.out.println("a ^ b = " + (a ^ b)); // 6
System.out.println("~a = " + (~a)); // -6
System.out.println("a << 2 = " + (a << 2)); // 20
System.out.println("a >> 2 = " + (a >> 2)); // 1
System.out.println("a >>> 2 = " + (a >>> 2)); // 1
// 赋值运算符
a += b;
System.out.println("a += b: " + a);
四.控制流程语句
(一)条件语句(用于根据条件的真假来决定是否执行某些代码块)
1.if语句
if (条件) {
// 条件为 true 时执行的代码块
}
示例:
int age = 18;
if (age >= 18) {
System.out.println("成年人");
}
2.if-else语句
if (条件) {
// 条件为 true 时执行的代码块
} else {
// 条件为 false 时执行的代码块
}
示例:
int age = 16;
if (age >= 18) {
System.out.println("成年人");
} else {
System.out.println("未成年人");
}
3.if-else if-else语句
if (条件1) {
// 条件1为 true 时执行的代码块
} else if (条件2) {
// 条件2为 true 时执行的代码块
} else {
// 所有条件都不满足时执行的代码块
}
```
示例:
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 70) {
System.out.println("良好");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
4.switch语句
switch (变量) {
case 值1:
// 变量等于值1时执行的代码块
break;
case 值2:
// 变量等于值2时执行的代码块
break;
default:
// 所有条件都不满足时执行的代码块
}
示例:
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("其他");
}
(二)循环语句(用于重复执行某段代码,直到满足某个条件为止)
1.for循环(用于循环次数已知的情况)
for (初始化; 条件; 更新) {
// 循环体
}
示例:
for (int i = 0; i < 5; i++) {
System.out.println("循环次数:" + i);
}
2.while循环(先判断条件,条件为真时执行循环体)
while (条件) {
// 循环体
}
示例:
int count = 0;
while (count < 5) {
System.out.println("while 循环次数:" + count);
count++;
}
3.do-while循环(先执行一次循环体,然后再判断条件)
do {
// 循环体
} while (条件);
示例:
int num = 0;
do {
System.out.println("do-while 循环次数:" + num);
num++;
} while (num < 3);
(三)跳转语句(用于在循环中控制程序的执行流程)
1.break语句(用于终止循环或switch语句)
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 终止循环
}
System.out.println("循环次数:" + i);
}
2.continue语句(用于跳过当前循环的剩余部分,继续执行下一次循环)
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数
}
System.out.println("循环次数:" + i);
}
3.return语句(用于从方法中返回值,也可以用于终止方法的执行)
public int add(int a, int b) {
return a + b; // 返回结果
}
(四)示例代码
public class ControlFlowExample {
public static void main(String[] args) {
// 条件语句
int age = 18;
if (age >= 18) {
System.out.println("成年人");
} else {
System.out.println("未成年人");
}
// switch 语句
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
default:
System.out.println("其他");
}
// for 循环
for (int i = 0; i < 5; i++) {
System.out.println("for 循环次数:" + i);
}
// while 循环
int count = 0;
while (count < 5) {
System.out.println("while 循环次数:" + count);
count++;
}
// do-while 循环
int num = 0;
do {
System.out.println("do-while 循环次数:" + num);
num++;
} while (num < 3);
// break 语句
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 终止循环
}
System.out.println("break 循环次数:" + i);
}
// continue 语句
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数
}
System.out.println("continue 循环次数:" + i);
}
}
}