Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
public class Main {
public static void main(String[] args) {
String a = "hi";
String b = new String("hi");
System.out.println((a == b) + " " + a.equals(b));
}
}false true
- Ждать
true true: литерал"hi"лежит в пуле строк, аnew Stringсоздаёт отдельный объект, поэтому==для двух ссылок даётfalse. - Ждать
false false:String.equalsсравнивает символы, а не ссылки, поэтому два объекта с одинаковым текстом равны.
- Что даст
a == b, если в обеих переменных литерал"hi"? - Как сравнить две строки без учёта регистра букв?