Ответ
Результат будет false.
Причина: Оператор == в Java сравнивает ссылки (адреса в памяти), а не содержимое строк.
- Строковый литерал
" "хранится в пуле строк (String Pool). - Выражение
new String(" ")создает новый объектStringв куче (heap), даже если идентичная строка уже есть в пуле.
Эти две переменные будут указывать на два разных объекта, поэтому == возвращает false.
String literal = "text"; // Ссылка на объект в String Pool
String newString = new String("text"); // Ссылка на новый объект в heap
System.out.println(literal == newString); // false — разные объекты
System.out.println(literal.equals(newString)); // true — одинаковое содержимое
Правило: Для сравнения строк по значению всегда используйте equals(). Оператор == используйте только когда нужно проверить, являются ли две переменные ссылкой на один и тот же объект (что редко требуется для строк).