什么时候应该将String作为对象进行比较,什么时候应该使用它们的equals方法?为了确保这一点,我总是使用equals,但这似乎不是很有效。在什么情况下我可以确定string1 == string2是安全的?
String
equals
string1 == string2
igsr9ssn1#
你应该几乎总是使用equals。你可以肯定string1 == string2将工作,如果:
以我的经验来说,这种事不常发生。
dffbzjpn2#
根据我对Java的了解,string1==string2只有在对这些对象的引用相同时才为真。看看下面这个案例
string1==string2
String string1 = new String("Bob"); String string2 = new String("Bob"); string1 == string2; // false, they are seperate objects string1 = string2; // asigning string1 to string2 object string1 == string2; // true, they both refer to the same object
qxgroojn3#
只有在确定对象相同时,才能使用==进行比较。例如,如果您有一个final静态String变量,则可能会发生这种情况。你可以肯定的是,比较将是在同一个对象之间。坚持使用equals进行字符串比较。
==
3条答案
按热度按时间igsr9ssn1#
你应该几乎总是使用
equals
。你可以肯定string1 == string2
将工作,如果:以我的经验来说,这种事不常发生。
dffbzjpn2#
根据我对Java的了解,
string1==string2
只有在对这些对象的引用相同时才为真。看看下面这个案例qxgroojn3#
只有在确定对象相同时,才能使用
==
进行比较。例如,如果您有一个final静态String变量,则可能会发生这种情况。你可以肯定的是,比较将是在同一个对象之间。
坚持使用
equals
进行字符串比较。