这句话是平等的myString != null,myString.length() > 0而且! myString.equals("") ?哪个是效率最高的?(Java 1.4)
这些并非都是等价的 - 空引用与空字符串不同.
空测试可能是最有效的,因为所有其他测试至少需要首先找出引用是否为空.
找出最好的方法是衡量绩效:
public static void main(String[] args)
{
String myString = "foo";
int a = 0;
for (int i = 0; i < 100000000; ++i)
{
//if (myString != null)
//if (myString.length() > 0)
if (!myString.equals(""))
{
a++;
}
}
System.out.println(a);
}
Run Code Online (Sandbox Code Playgroud)
结果:
myString != null : 0.61s
myString.length() > 0 : 0.67s
!myString.equals("") : 2.82s
因此,空测试和长度测试花费的时间几乎相同,但使用空字符串测试相等性的时间要长四倍以上.请注意,我测试的Java版本比您使用的版本略高,因此您应该自己运行测试以查看是否获得相同的结果.
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |