-5
import java.io.*;
public class StringTest{
public static void main(String[] args){
String a="Hello";
String b="Hello";
String c=new String("Hello");
String d=new String("Hello");
System.out.println(a+c);
System.out.println(b+d);
System.out.println((a+c)==(b+d));
}
}
Почему это System.out.println((a+c)==(b+d));
заявление, возвращающее false
?System.out.println ((a + c) == (b + d)); почему это утверждение возвращает false?
В этом вопросе так много ответов в 'stackOverFlow'. –
, если я сравниваю a == c, тогда '==' проверяет ссылку и возвращает true, так что то же самое должно произойти для этого ((a + c) == (b + d)) утверждение также правильно? –
@ M.Kishore нет, единственное сравнение, которое возвращает true, должно быть 'a == b', потому что эти объекты будут указывать на один и тот же экземпляр String (они являются как строковыми литералами). «Новый String (« Hello ») заставит String быть создан как новый объект. [прочитать это] (http://stackoverflow.com/questions/3052442/what-is-the-difference-between-text-and-new-stringtext) – SomeJavaGuy