对于类的成员变量
不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。
1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。
2、单精度浮点型(float)的基本类型变量的默认值为0.0f。
3、双精度浮点型(double)的基本类型变量的默认值为0.0d。
4、字符型(char)的基本类型变量的默认为 “/u0000”。
5、布尔性的基本类型变量的默认值为 false。
6、引用类型的变量是默认值为 null。
7、数组引用类型的变量的默认值为 null。当数组变量的实例后,如果没有没有显示的为每个元素赋值,Java 就会把该数组的所有元素初始化为其相应类型的默认值。
数组例子:
-
int[] a; //声明,没有初始化默认值是null
-
int[] a=new int[5]; //初始化为默认值,int型为0
局部变量初始化
局部变量声明以后,Java 虚拟机不会自动的为它初始化为默认值。
因此对于局部变量,必须先经过显示的初始化,才能使用它。
如果编译器确认一个局部变量在使用之前可能没有被初始化,编译器将报错。
静态变量,成员变量,局部变量的默认值
1.静态变量
public class GlobalVar {
public static char aChar;
public static int anInt;
public static long aLong;
public static float aFloat;
public static double aDouble;
public static String string;
public static boolean aBoolean;
public static int[] ints;
public static void main(String[] args){
System.out.println("全局变量char默认值:"+aChar);
System.out.println("全局变量int默认值:"+anInt);
System.out.println("全局变量long默认值:"+aLong);
System.out.println("全局变量float默认值:"+aFloat);
System.out.println("全局变量double默认值:"+aDouble);
System.out.println("全局变量string默认值:"+string);
System.out.println("全局变量aBoolean默认值:"+aBoolean);
System.out.println("全局变量ints默认值:"+ints);
if(aChar == 0){
System.out.println("全局变量char默认值为空");
}else{
System.out.println("全局变量char默认值不为空");
}
}
}
全局变量char默认值:
全局变量int默认值:0
全局变量long默认值:0
全局变量float默认值:0.0
全局变量double默认值:0.0
全局变量string默认值:null
全局变量aBoolean默认值:false
全局变量ints默认值:null
全局变量char默认值为空
2.成员变量
public class MembereVar {
private char aChar;
private int anInt;
private long aLong;
private float aFloat;
private double aDouble;
private boolean aBoolean;
private String string;
private int[] ints;
public static void main(String[