Back to questions
Junior — Middle
72
Каким образом можно в памяти распределить две идентичных по содержанию строки, чтобы они занимали разные места в куче?
Answer from AI
sobes.tech AI
В Java строки с одинаковым содержанием обычно хранятся в пуле строк (String Pool), что позволяет экономить память и использовать один объект для одинаковых строк.
Чтобы создать две строки с одинаковым содержанием, но расположенные в разных местах памяти (в куче), можно:
- Создать строку с помощью оператора
new String(), который всегда создает новый объект в куче.
Пример:
String s1 = "hello";
String s2 = new String("hello");
System.out.println(s1 == s2); // false, разные объекты
System.out.println(s1.equals(s2)); // true, содержимое одинаковое
Таким образом, s1 — строка из пула, а s2 — новый объект в куче с тем же содержанием.