最近想要从redis中取值,但是需要判断页面的查询是否带参数。所以就用到了isEmpty()方法。
但是报了空指针异常。
所以就写了个进程试了一下。然后总结一下查到的资料来记录一下,防止以后自己再掉进坑里。
public static void main(String[] args) {
String a = new String();
String b = "";
String c = null;
System.out.println(a.isEmpty()?"new String()可以使用isEmpty函数":"new String()不可以使用isEmpty函数");
System.out.println(b.isEmpty()?"\"\"可以使用isEmpty函数":"\"\"不可以使用isEmpty函数");
System.out.println(c.isEmpty()?"null可以使用isEmpty函数":"null不可以使用isEmpty函数");
}
执行结果:
总结:
首先说一下String类中的.isEmpty()方法;
.isEmpty()是判断字符串是否初始化的方法,返回值是Boolean类型。
然后来分析一下创建的三个字符串:
- 此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已)。
- 此时b是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串)。
- 此时c是未分配内存空间,无值,是一种无值(值不存在)就是只是声明了一下 根本就没有创建(初始化)。