null和“”的区别

举例来说String s=null;

string.trim()就会抛出为空的exception

String s="";

string.trim()就不会抛。

从对象角度

NULL代表声明了一个空对象,对空对象做任何操作都不行的,除了=和==。

而“”代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。

 

从内存角度

String s=null;只是定义了一个句柄,也就是说你有了个引用,但是这个引用未指向任何内存空间

String s="";这个引用已经指向了一块是空字符串的内存空间.

当判断s是空对象或是空字符串 一般用 if(s==null||s==“”);先判断它是否是空对象再判断它是否为空。

 

以上是看了http://www.360doc.com/content/12/1107/09/600840_246328536.shtml的一点总结。详细的见链接。

原文地址:https://www.cnblogs.com/moxia1234/p/3990107.html