现在我遇到这么一个问题!
pidStr是String类型!
System.out.println(pidStr);
System.out.println(pidStr == null);
System.out.println(pidStr.equals(null));
System.out.println(pidStr.equals(""));
System.out.println(pidStr == "");这是输出后的结果!null
false
false
false
false这个应该怎么判断!打出来的是null,可是判断怎么都是false!这是为什么?
pidStr是String类型!
System.out.println(pidStr);
System.out.println(pidStr == null);
System.out.println(pidStr.equals(null));
System.out.println(pidStr.equals(""));
System.out.println(pidStr == "");这是输出后的结果!null
false
false
false
false这个应该怎么判断!打出来的是null,可是判断怎么都是false!这是为什么?
pidStr == null 内存地址的比较,肯定是false
pidStr.equals(null) pidStr没有指向任何字符串常量,肯定也是false
pidStr.equals("") 同上
pidStr == "" 同第一个
如果是String s = new String(),这个时候s是为空的,你只需要判断s.isEmpty()就好了
如果是String s = null,这个时候是可以直接判断pidStr == null的
那么System.out.println(pidStr == null);一定是true对于一楼的:pidStr == null 内存地址的比较,肯定是false
这个也是错的,内存地址的比较,不一定就是false