[英]Java String Comparison: style choice or optimization?
我一直在研究一些由不同的人编写的GWT代码,并且有不同的方法来比较字符串。 我很好奇这是否只是一种风格选择,或者如果一种比另一种更优化:
"".equals(myString);
myString.equals("");
myString.isEmpty();
有区别吗?
"".equals(myString);
如果myString
为null,则不会抛出NullPointerException
。 这就是很多开发人员使用这种形式的原因。
myString.isEmpty();
如果myString
永远不为null,那么这是最好的方法,因为它解释了发生了什么。 编译器可以优化这个或myString.equals("")
,因此它更像是一种样式选择。 isEmpty()
比equals("")
更好地显示你的意图,因此通常是首选。
请注意,Java 6中添加了isEmpty()
,不幸的是,如果您不支持Java 1.4,仍然会有人大声抱怨。
apache StringUtils为String操作提供了一些方便的方法。
看看那个方法和相关的方法。
如果您正在使用最新版本的Java(1.6),myString.isEmpty()可能是最好的。 它可能比myString.equals(“”)表现更好,因为它只需要检查一个字符串。
“.equals(myString)具有如果myString为null则不抛出空指针异常的属性。 然而,仅仅因为这个原因,我会避免它,因为如果遇到意外情况通常会更快失败。 否则将来一些小虫子很难追查.....
myString.equals(“”)对于那些希望保持与旧Java版本兼容的人来说是最自然/惯用的方法,或者只是想要明确他们所比较的内容。
使用“”的两个选项可能需要创建临时String对象,但.isEmpty()函数不应该。
如果他们打算放入.isEmpty()函数,我说最好用它!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.