首先我们来看一段简单的代码。
再来看一下它的运行结果
做一个简单的分析可以得出
1.a是被分配了内存空间且值是为空的,这个空是一种有值的空
2.b被分配了内存空间,值为空字符串,有值但是也为空
3.c未被分配内存空间,且无值,是一种无状态
如果我们要判断一个String的对象是否为空,那么一定就不能用equals(),isEmpty(),“”进行判断,只能用==与null进行比较。
用length()==0来判断String的字符个数是否为空值,用isEmpty()和length()原理一样,用equals("")比较对象的内容是否空字符串。
需要特别注意的一点是str!=null 和null!=str的区别
用str!=null这种可能会出现空指针异常,用null!=str不会,所以一般建议用后者