Java:比较字符串时是否存在顺序差异?

lda*_*dam 1 java string comparison

我注意到有些人在将两个字符串比较时似乎有所不同,例如将变量与常量进行比较时.例如,假设我们有一个常量字符串和一个输入方法:

public final String CONSTANT_STRING = "A constant string";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Run Code Online (Sandbox Code Playgroud)

以任何方式更好或更快地首先使用未知输入:

br.readLine().equals(CONSTANT_STRING)
Run Code Online (Sandbox Code Playgroud)

或者将常数与未知数进行比较:

CONSTANT_STRING.equals(br.readLine());
Run Code Online (Sandbox Code Playgroud)

Gim*_*mby 10

这不是性能问题.即使br.readLine()返回null,第二个版本也不会产生NullPointerException.但第一个确实如此.