String a = "abc";
String b = "abc";
System.out.println("Result .... " + a==b); // false
System.out.println(a==b); // true
1во отпечатва изявление за отпечатване false
и 2ри щампи true
, но в идеалния случай тя трябва да бъде true
, Защо е така false
в 1во изявление за отпечатване?
Отговори:
4 за отговор № 1System.out.println("Result .... " +a==b);
-> низът на резултата ще бъде добавен с "a" и след това ще се сравнява с b, така че резултатът ще бъде невярно.
4 за отговор № 2
Ред на операциите:
"Result .... " + a==b
е еквивалентно на
("Result .... " +a) == b
което ще бъде false
тъй като двете струни не са еднакви позовавания.
Обяснението за това е, че +
допълнителният оператор има a по-висок предимство от ==
логична еквивалентност.
Изразът a == b
се връща true
във второто си изявление, което се дължи на интернирането, в който a
и b
всъщност се отнасят до същия низов обект.
Кликнете тук за връзка към таблицата на Oracle за предимство на оператора в Java.
2 за отговор № 3
Забравена проверка на равенството с == в Java. В Java тази операция проверява равнопоставеността на обектната връзка. Освен това той е приложим за проверка на равнопоставеността на прости номера. Трябва да използвате метода .equals
String a = "abc"; String b = new String(a); System.out.printLn(a == b);//false System.out.println(a.equals(b));//true
Научете за реда на работа в Java
0 за отговор № 4
Това е така, защото в "Result .... " +a==b
първо добавете "Result .... "
с a
и тогава ==
да се b
, Ако пишете така "Result .... " +(a==b)
, тогава ще бъде наред.
0 за отговор № 5
В първото изявление сравнявате "Result .... " + a
с b
, Във втория, сравнявате a
с b
, оттук разликата. Променете първото си изявление, както следва:
System.out.println("Result .... " + (a==b));
И имайте предвид, че низовете трябва да се сравняват с помощта на equals()
метод вместо ==
.
0 за отговор № 6
System.out.println("Result .... " +a==b);
низ Result
е добавен с "a" и след това се сравнява с b, така че дава фалшива. (Result .... a == b)
което е невярно.
Следвайте тази връзка, за да разберете предимство на операторите в Java и това.
Operator + has more precedence than == operator.
опитайте да добавите скоби, ще видите разликата. Конзолата се оценява отделно.
public static void main(String[] args) {
String a = "abc";
String b = "abc";
System.out.println("Result .... " + (a == b)); // false
System.out.println(a == b); // true}
}
продукция
Result .... true
true