展开全部
来做个测试
java用的最e69da5e887aa62616964757a686964616f31333361313934多的判空,殊不知,多数人一直在用一种最耗时,性能最差的方式
本测试用例特意比较常用的4种判空形式
/**
* 字符串判空性能大比较
*/
public class Test{
String s = "";
long n = 10000000;
//s == null || s.equals("")
private void function1(){
long startTime = System.currentTimeMillis();
for (long i = 0; i
if (s == null || s.equals(""))
;
}
long endTime = System.currentTimeMillis();
System.out.println("[s == null || s.equals(\"\")] use time: " + (endTime - startTime) + "ms");
}
//s == null || s.length() <= 0
private void function2(){
long startTime = System.currentTimeMillis();
for (long i = 0; i
if (s == null || s.length() <= 0)
;
}
long endTime = System.currentTimeMillis();
System.out.println("[s == null || s.length() <= 0] use time: " + (endTime - startTime) + "ms");
}
//s == null || s.isEmpty()
private void function3(){
long startTime = System.currentTimeMillis();
for (long i = 0; i
if (s == null || s.isEmpty())//since jdk1.6
;
}
long endTime = System.currentTimeMillis();
System.out.println("[s == null || s.isEmpty()] use time: " + (endTime - startTime) + "ms");
}
//s == null || s == ""
private void function4(){
long startTime = System.currentTimeMillis();
for (long i = 0; i
if (s == null || s == "")
;
}
long endTime = System.currentTimeMillis();
System.out.println("[s == null || s == \"\"] use time: " + (endTime - startTime) + "ms");
}
public static void main(String[] args){
Test test = new Test();
test.function1();
test.function2();
test.function3();
test.function4();
}
}
直接右键运行,结果一目了然
[s == null || s.equals("")] use time: 73ms
[s == null || s.length() <= 0] use time: 29ms
[s == null || s.isEmpty()] use time: 33ms
[s == null || s == ""] use time: 29ms