关于JAVA字符串非空判断效率问题

关于JAVA字符串非空判断效率问题

字符串非空的判断,我们经常如下这样写:

      
1 if (str == null || "" .equals(str)){ 2 // 具体操作 3   }

JDK的equals方法的源代码:

      
1 public boolean equals(Object anObject) { 2   if ( this == anObject) { 3 return true ; 4 } 5 if (anObject instanceof String) { 6 String anotherString = (String)anObject; 7 int n = count; 8 if (n == anotherString.count) { 9 char v1[] = value; 10 char v2[] = anotherString.value; 11 int i = offset; 12 int j = anotherString.offset; 13 while (n -- != 0 ) { 14 if (v1[i ++ ] != v2[j ++ ]) 15 return false ; 16 } 17 return true ; 18 } 19 } 20 return false ; 21 }

 如果去比较字符串的长度是否为0的话,效率是更高的,str.length()的方法,则是直接返回其大小.

所以做字符串非空判断尽量写成如下方式:

      
1 if (str == null || str.length() == 0 ){ 2 // 具体操作 3 }

也可以用apache-common-lang包下StringUtils.isEmpty(String src);方法判断即可,里面的实现就是用长度来判断的。

你可能感兴趣的:(java,apache,jdk,J#)