Я знаю, что строки Java неизменны.Тем не менее, когда я запускаю функцию, представленную ниже, вывод не соответствует ожидаемому.
public static void main(String[] args) {
String s = "wicked";
String [] ss = new String [1];
ss[0] = "witch";
modify(s, ss);
System.out.println(s+" "+ ss[0]);
}
private static void modify(String s, String[] ss) {
s = "sad";
ss[0] = "sod";
}
Вывод, который я получаю, равен wicked sod
, а не wicked witch
, как я ожидал.Это потому, что я передаю ссылку на массив в качестве второго аргумента функции модификации, а не на передачу самого объекта String?Любое разъяснение высоко ценится.