Arrays haben in Java einen Sonderstatus, da sie weder primitive Typen noch vollwertige Objekte sind. Diese einzigartige Natur wirft die Frage auf: Werden Java-Arrays als Wert oder als Referenz übergeben?
Alles in Java wird als Wert übergeben.Dazu gehören auch Arrays. Wenn Sie ein Array an eine Methode übergeben, wird tatsächlich die Referenz auf dieses Array übergeben, nicht das Array selbst.
Daher wirken sich alle über diese Referenz am Inhalt des Arrays vorgenommenen Änderungen auf das ursprüngliche Array aus . Das Ändern der Referenz so, dass sie auf ein neues Array zeigt, hat jedoch keine Auswirkungen auf die Referenz in der ursprünglichen Methode.
Bedenken Sie das folgende Java-Snippet:
public class ArrayPassingDemo { public static void changeContent(int[] arr) { arr[0] = 10; // Changes the content of the array in main() } public static void changeRef(int[] arr) { arr = new int[2]; // Does not change the array in main() arr[0] = 15; } public static void main(String[] args) { int[] arr = new int[2]; arr[0] = 4; arr[1] = 5; changeContent(arr); System.out.println(arr[0]); // Will print 10 changeRef(arr); System.out.println(arr[0]); // Will still print 10 (since the reference change isn't reflected) } }
In diesem Beispiel:
Dieses Verhalten verdeutlicht, dass Arrays in Java als Wert übergeben werden, obwohl die Übergabeoperation ihre Referenz beinhaltet.
Das obige ist der detaillierte Inhalt vonJava-Arrays: Wertübergabe oder Referenzübergabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!