假设str是java.lang.String,那么使用"String".equals(str) vs str.equals("String")会对性能产生影响吗?我的直觉是,“不,JVM /编译器将在两种情况下优化文字字符串”,但我看到第一种样式在各种代码库中出现得足够多,它看起来太不自然了(至少在我看来是这样),所以我想除了样式之外,肯定还有原因。
发布于 2014-11-24 18:55:35
使用"String".equals(str) (我觉得很难看)的唯一原因是懒惰,因为它省去了在调用str.equals("String")之前检查str != null的需要。
就性能而言,不应该有任何区别。无论哪种方式,您都在比较两个String实例。
发布于 2014-11-24 18:56:18
"String".equals(str)不会产生与
str.equals("String")如果str == null.
在第一种情况下,它返回false,在第二种情况下,它抛出一个NullPointerException。
"String".equals(str)实际上相当于
str != null && str.equals("String")https://stackoverflow.com/questions/27112091
复制相似问题