java中只要是基本数据类型的变量初始值问题

java中只要是基本数据类型的变量

int a;和int a =0是一样的
只要是引用数据类型变量
String a = null;
String a; 是一样的
以上说法正确吗

基本数据类型对。引用的值不初始化是没有默认值的,引用的数据类型变量不初始化是不能用的。必须初始化了别的地方才能用。因为没有引用的内存地址。

你分别打印String a = null;
String a; 看看。

类中的基本数据类型成员变量如果没有初始化 java会保证有一个默认值 ,但是对于基本类型的局部变量来说 则必须在使用前进行赋值 否者编译期会提示错误。
变量是某个对象的引用,则在使用前必须初始化该引用