Java中String str=""和String str=null的区别是什么?
分析:
赋值为空字符串和赋值为null的字符串在使用的过程中经常容易混淆,这主要是对空字符串的理解不合理造成的。
当一个字符串str被赋值为null的时候,它只是声明了一个String对象的引用,但并没有分配任何的内存空间。
而str声明为空字符串,却拥有内存空间,只是它的长度是0而已,我们只有真正的理解了空字符串的定义才能避免在使用中出现不必要的问题。
String str=null和String str="",这两个表达式最本质的区别就是一个为其分配了内存,而另一个没有,这一区别是两个表达式在使用的过程中存在很多的差异,大家一定要注意。
比如在计算长度的时候,赋值为null的会报一个空指针异常,这也是在Java开发的过程中最易出现的异常,也是出现的最多的异常。而赋值为""的字符串,可以通过str.length()获取到它的长度,只是它的长度是0。
目录
收起