初始值(默认值)
参考:官方文档
Java程序中,任何变量必须初始化后才能使用。
以下为不同数据类型的默认值。
| 数据类型 | 初始值 |
|---|---|
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| char | ‘u0000’ |
| float | 0.0f |
| double | 0 |
| boolean | false |
| 所有引用类型 | null |
但并不是所有未初始化的变量都会赋默认值。
对应的面试编程题:以下代码会打印什么?
public static void main(String[] args) {
int[] arr = new int[10];
System.out.println(arr[0]);
}
//打印: 0
public static void main(String[] args) {
int a;
System.out.println(a);
}
//编译失败,提示“Error:(16, 28) java: 可能尚未初始化变量a”
下面根据不同的变量类型依次说明:
实例变量(非静态字段)
系统会初始化默认值
字段未被static修饰就是实例变量。在创建对象时,该变量会在分配内存阶段被赋予默认值,在执行new指令之后,被赋予程序定义的初始值。
public class Cat {
// 实例变量
int age;
}
类变量(静态字段)
系统会初始化默认值
字段被static修饰就是类变量。在类加载的准备阶段,该变量会被赋予默认值,在类加载的初始化阶段,会被赋予程序定义的初始值。
public class Cat {
// 类变量
static int age;
}
本地变量
系统不会初始化默认值
方法块中定义的变量为本地变量。该变量必须在代码中显示赋值,否则会提示编译错误。
public static void main(String[] args) {
// 本地变量
int a = 0;
}
参数
无需初始化默认值
参数很好理解,如下所示,args就是参数。参数又分实参和形参。参数的值在调用该方法时传入。
// args 就是参数
public static void main(String[] args) {
}
本文深入解析Java中变量的初始化过程,包括不同数据类型的默认值、实例变量与类变量的初始化时机,以及本地变量的特殊规则。通过具体示例,帮助读者理解变量初始化的重要性和正确实践。

被折叠的 条评论
为什么被折叠?



