1.默认值的不同境遇
①int a;
②Student student;
对于①首先大家可以看到的是int是一个基本数据类型,但没有初始化,但因为是基本数据类型, java会给a一个默认的0。
对于②来说,student这个凭证没有任何权限,并且Student 并不是基本数据类型,没有默认赋值,所以student就等于null。
2.null造成的结果
假设Student 有一个成员变量,grade。
正确的访问是 Student student=new Student ();student.grade去访问,因为这个时候student已经有了一块内存的凭证。
但是如果仅仅是Student student; student并没有被赋予任何内存的凭证。所以这个时候如果调用student.grade就一定会报错。具体就是空指针的错误,会造成程序崩溃。