Java 变量初始化
char '\u0000'(不可见字符)
byte 0
short 0
int 0
long 0
float 0.0
Object null
1.对于类的成员变量(全局变量),不管程序有没有显式的进行初始化,
JVM 都会先自动给它初始化为默认值,其值如下:
boolean falsechar '\u0000'(不可见字符)
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
String nullObject null
2.对于局部变量,JVM 不会自动给它初始化为默认值,
因此局部变量的使用必须先经过显式的初始化。
自己写个程序试试:
public class Test {
// 类的成员变量,JVM 会自动给其初始化为默认值
private static char c;
private static byte b;
private static short s;
private static int i;
private static long l;
private static float f;
private static double d;
private static boolean bool;
static String str;
static Student student;
public static void main(String[] args) {
System.out.println(c); // 不可见字符 '\u0000'
System.out.println(b); // 0
System.out.println(s); // 0
System.out.println(i); // 0
System.out.println(l); // 0
System.out.println(f); // 0.0
System.out.println(d); // 0.0
System.out.println(bool); // false
System.out.println(str); // null
System.out.println(student); // null
// 局部变量,JVM 不会自动给它初始化为默认值,因此局部变量的使用必须先经过显式的初始化。
int a;
// 下面语句企图直接使用 a,编译时报错:The local variable a may not have been initialized
//System.out.println(a);
}
class Student {}
}