Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 区别于;字符串";。equals(value)还是value.equals(字符串)?_Java_String_Equals - Fatal编程技术网

Java 区别于;字符串";。equals(value)还是value.equals(字符串)?

Java 区别于;字符串";。equals(value)还是value.equals(字符串)?,java,string,equals,Java,String,Equals,可能重复: 为什么我在一些java编码中看到的是“要比较的字符串”.equals(输入值),而不是输入值.equals(“要比较的字符串”) 利与弊是什么 谢谢“要比较的字符串”。等于(输入值)避免了空检查的需要 如果输入值为null,另一个可能抛出NPW。事实上,许多IDE都警告您这一点,并允许您在不键入任何内容的情况下更改代码。结果应该不会有所不同 但从技术上讲,他们可能会 在第一种情况下,将从String类调用equals()和hashCode()方法 在第二种情况下,将从input_v

可能重复:

为什么我在一些java编码中看到的是
“要比较的字符串”.equals(输入值)
,而不是
输入值.equals(“要比较的字符串”)

利与弊是什么

谢谢“要比较的字符串”。等于(输入值)避免了空检查的需要


如果输入值为null,另一个可能抛出NPW。事实上,许多IDE都警告您这一点,并允许您在不键入任何内容的情况下更改代码。

结果应该不会有所不同

但从技术上讲,他们可能会

在第一种情况下,将从String类调用equals()和hashCode()方法

在第二种情况下,将从input_value类调用equals()和hashCode()方法

此外,如果输入值为null,在第一种情况下,结果将始终为false,其中与第二种情况一样,您将得到一个NullPointerException


这是不够的信息,说哪一个是首选。这取决于你的目的

在第一种情况下,可以避免NullPointerException


在第二种情况下,您可能(如果您为输入值定义了类)可以更好地控制如何定义对象的相等性(equals()和hashCode()方法)

过了一段时间才得到最初的问题:对不起,您使用了什么进行搜索?我不能。好吧,这就是懒惰。性能如何?这会创建一个不必要的临时字符串对象吗?还是两者都一样?