两者区别非常大,虽然都是没有信息,但是null代表堆内存中根本没有这个东西,而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的,你可以这样尝试一下:
String aaa = null;
String bbb = "";
然后调用String的方法比如说
aaa.indexOf("a");
bbb.indexOf("a");
这样的话,字符串aaa在调用indexOf的时候会报空指针异常,而bbb则不会。
因为aaa在堆内存中不存在,无法调用方法,而bbb是存在的。
你可以这么想,余额宝里有100块,虽然每天只能产生0.01收益,
但是他还是可以调用他的计算方法,他可以赚取收益,他是存在的(“”),
但是如果余额宝钱都不存在了(null),是不可能执行收益的。