Witam Im studiuje dla mojego egzaminu scja i mam pytanie o przekazywanie ciągu przez wartość/wartość i jak są one niezmienne. Poniższy kod wyświetla "abc abcfg".Java String niezmienny przekazywany przez referencję/wartość
Co chcę wiedzieć, dlaczego tak się dzieje? Nie rozumiem, co dzieje się w środku metody f. Łańcuch jest przekazywany według wartości, więc na pewno powinien zmienić się na "abcde" w metodzie? Bo jeśli b + = "fg" dołącza do łańcucha, dlaczego nie działa w metodzie?
Dzięki!
public class Test {
public static void main(String[] args){
String a =new String("abc");
String b = a;
f(b);
b+="fg"
System.out.println(a + " " + b);
}
public static void f(String b){
b+="de";
b=null;
}
}
Kluczową sprawą do zapamiętania jest to, że referencje są przekazywane wartością. f otrzymuje kopię odwołania, które początkowo jest wskaźnikiem do "fg". –