Java 变量分为两大类:基本数据类型(Primitive Types) 和 引用数据类型(Reference Types)。
一、基本数据类型(8 种)
存储实际值,直接分配内存空间,速度快。
|
类型 |
关键字 |
大小(字节) |
默认值 |
取值范围/说明 |
|
字节型 |
byte |
1 |
0 |
-128 ~ 127 |
|
短整型 |
short |
2 |
0 |
-32,768 ~ 32,767 |
|
整型 |
int |
4 |
0 |
-2³¹ ~ 2³¹-1(约 ±21 亿) |
|
长整型 |
long |
8 |
0L |
-2⁶³ ~ 2⁶³-1,需加 L 后缀(如 100L) |
|
单精度 |
float |
4 |
0.0f |
科学计数法,需加 f 后缀(如 3.14f) |
|
双精度 |
double |
8 |
0.0d |
默认小数类型(如 3.14) |
|
字符型 |
char |
2 |
u0000 |
Unicode 字符(如 ‘A’ 或 ‘u0041’) |
|
布尔型 |
boolean |
未定义 |
false |
true 或 false |
二、引用数据类型
存储对象的内存地址(引用),默认值为 null。
|
类型 |
说明 |
示例 |
|
类(Class) |
自定义类或库类(如 String) |
String s = “Hello”; |
|
接口(Interface) |
实现接口的类的引用 |
List list = new ArrayList(); |
|
数组(Array) |
固定长度的同类型数据集合 |
int[] arr = new int[5]; |
|
枚举(Enum) |
预定义常量集合 |
enum Color { RED, GREEN } |
|
注解(Annotation) |
元数据标记 |
@Override |
三、变量作用域
- 局部变量
- 在方法/代码块内声明
- 无默认值,必须手动初始化
- 作用域限于声明它的代码块
void myMethod() {
int x = 10; // 局部变量
System.out.println(x);
}
实例变量(成员变量)
- 在类内、方法外声明
- 有默认值(如 int 默认为 0)
- 随对象创建/销毁
class MyClass {
int age; // 实例变量(默认值=0)
}
静态变量(类变量)
- 用 static 声明
- 在类加载时初始化,全局共享
- 通过类名直接访问
class MyClass {
static int count = 0; // 静态变量
}
四、类型转换
- 自动转换(隐式)
小类型 → 大类型(如 int → double):
int a = 100;
double b = a; // 自动转换为 100.0
- 强制转换(显式)
大类型 → 小类型(可能丢失精度):
double x = 10.5;
int y = (int) x; // y=10(截断小数部分)
3.引用类型转换
向上转型(子类→父类):自动转换
Animal cat = new Cat(); // Cat 是 Animal 的子类
向下转型(父类→子类):需显式转换(可能抛出 ClassCastException)
if (animal instanceof Cat) {
Cat myCat = (Cat) animal;
}
五、关键注意事项
- final 变量:常量,值不可修改(final int MAX = 100;)。
- 类型默认值:
- 基本类型:0 / false / u0000
- 引用类型:null
- 字面量后缀:
- long:L(如 1000L)
- float:f(如 3.14f)
- var(局部变量类型推断)(Java 10+):
var list = new ArrayList<String>(); // 自动推断为 ArrayList<String>
总结图示

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
















暂无评论内容