Java 八大基本数据类型的默认值 及其 相关初始化问题分析

八大基本数据类型的默认值

boolean false
char '/uoooo'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d

基本类型数组没有赋值也一样。

 

基本数据类型默认值和初始化问题

class TestClass {
    static double double1;
    double double2;
    double[] double4;

    public static void main(String[] args) {
        double double3;
        TestClass testClass = new TestClass();
        System.out.println(double1);
        System.out.println(testClass.double2);
        System.out.println(double3);
        System.out.println(testClass.double4[0]);
        double[] booleans = new double[16];
        System.out.println(booleans[0]);

    }
}

报错

编译器会报如下错误

错误1

运行结果

Error:(100, 28) java: 可能尚未初始化变量double3

错误2

运行结果

Exception in thread "main" java.lang.NullPointerExceptio at com.bridge.TestClass.main(BridgeApplicationTests.java:101)

因为空指针异常,double[] double4; 相当于在栈创建了一个引用,但是并未指向堆中的某个对象实例,故会报空指针异常。

解决

将 double3 初始化 double3=0.0; 

double4 指向 booleans ,或者 new一个实例数组

class TestClass {
    static double double1;
    double double2;
    double[] double4;

    public static void main(String[] args) {
        double double3=0.0;
        TestClass testClass = new TestClass();
        System.out.println(double1);//0.0
        System.out.println(testClass.double2);//0.0
        System.out.println(double3);//0.0
        double[] booleans = new double[16];
        testClass.double4 = new double[16];
        System.out.println(booleans[0]);//0.0
        System.out.println(testClass.double4);//[D@4edde6e5
        System.out.println(testClass.double4[0]);//0.0
    }
}

运行结果:

0.0
0.0
0.0
0.0
[D@4edde6e5
0.0

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页