二话不说,直接给代码吧。
@Test
public void test(){
int i=0;
String s = "sdf";
Long befor = System.currentTimeMillis();
while(i<10000){
if(StringUtils.isNotBlank(s)){
++i;
}else{
++i;
}
}
Long medium = System.currentTimeMillis();
while(i<2000000){
i = StringUtils.isBlank(s)?(++i):(++i);
}
Long end = System.currentTimeMillis();
System.out.println("if(){}else{}=="+(medium-befor));
System.out.println("?:=="+(end-medium));
}
控制台打印结果:
if(){}else{}==7
?:==10
实际效果是:三目运算符的效果明显优于if(){}else{}