1. 变量的基本概念
变量是存储数据值的标识符。在 Java 中,变量必须先声明再使用。
2. 变量的声明和初始化
// 声明变量
int age;
// 初始化变量
age = 25;
// 声明并初始化变量
int age = 25;
3. 基本数据类型
1 整型
- byte:1字节,范围 -128 到 127
- short:2字节,范围 -32768 到 32767
- int:4字节,范围 -2^31 到 2^31-1
- long:8字节,范围 -2^63 到 2^63-1
byte byteVar = 10;
short shortVar = 100;
int intVar = 1000;
long longVar = 100000L; // 注意 L 后缀
2 浮点型
- float:4字节,单精度浮点数
- double:8字节,双精度浮点数
float floatVar = 1.23f; // 注意 f 后缀
double doubleVar = 1.23456789;
3 字符型
- char:2字节,表示单个字符
char charVar = 'A';
4 布尔型
- boolean:表示真或假,只有两个值:
true
和false
boolean boolVar = true;
4. 包装类
Java 为每种基本数据类型提供了对应的包装类,用于将基本数据类型转换为对象。
1 常见的包装类
- Integer:对应
int
- Long:对应
long
- Float:对应
float
- Double:对应
double
- Character:对应
char
- Boolean:对应
boolean
2 包装类的使用
// 将基本数据类型转换为包装类
Integer intObj = Integer.valueOf(10);
Double doubleObj = Double.valueOf(1.23);
// 将包装类转换为基本数据类型
int intValue = intObj.intValue();
double doubleValue = doubleObj.doubleValue();
5. 类型转换
1 自动类型转换(隐式转换)
当将较小范围的数据类型赋值给较大范围的数据类型时,Java 会自动进行类型转换。
int intVar = 10;
double doubleVar = intVar; // 自动将 int 转换为 double
2 强制类型转换(显式转换)
当将较大范围的数据类型赋值给较小范围的数据类型时,需要进行强制类型转换,可能会导致数据丢失。
double doubleVar = 10.5;
int intVar = (int) doubleVar; // 强制将 double 转换为 int,结果为 10
6. 变量的作用域
变量的作用域决定了变量在程序中的可见性和生命周期。
1 局部变量
在方法、构造方法或块中定义的变量,只在该方法、构造方法或块中可见。
public void method() {
int localVar = 10; // 局部变量
}
2 成员变量
在类中定义但在方法、构造方法或块之外定义的变量,称为成员变量或实例变量,属于类的实例。
public class MyClass {
int memberVar = 10; // 成员变量
public void method() {
System.out.println(memberVar);
}
}
3 静态变量
使用 static
关键字修饰的变量,称为静态变量或类变量,属于类本身,所有实例共享同一个静态变量。
public class MyClass {
static int staticVar = 10; // 静态变量
public void method() {
System.out.println(staticVar);
}
}
7. 常量
使用 final
关键字修饰的变量称为常量,一旦赋值就不能改变。
public class MyClass {
final int CONSTANT = 10; // 常量
public void method() {
// CONSTANT = 20; // 编译错误,不能重新赋值
System.out.println(CONSTANT);
}
}
简单代码:
public class MyClass {
public static void main(String[] args) {
int age = 25;
System.out.println("Age: " + age);
double height = 1.75;
System.out.println("Height: " + height);
char grade = 'A';
System.out.println("Grade: " + grade);
boolean isStudent = true;
System.out.println("Is Student: " + isStudent);
String name = "John Doe";
System.out.println("Name: " + name);
}