Java での値と参照の受け渡しについて: 配列のケーススタディ
Java では、値渡しまたは参照渡しの概念は次のとおりです。重要なトピック。データ型が異なれば、このプロセス中の動作も異なります。プリミティブは値によって渡されますが、非プリミティブではあるがオブジェクトではない配列は、独特の状況を示します。
配列は値によって渡されるのか、参照によって渡されるのか?
本質的に、Java のすべては値によって渡されます。オブジェクトである配列はこの概念に従い、配列への参照は値によって渡されます。オブジェクト参照を渡すのと同様に、配列参照はコピーです。
配列の値の受け渡しの影響
この値の受け渡しには次のような特定の意味があります。
サンプル デモンストレーション
次の Java コードを考えてみましょう:
public static void changeContent(int[] arr) { // If we change the contnet of arr. arr[0] = 10; // Will change the content of array in main() } public static void changeRef(int[] arr) { // If we change the reference arr = new int[2]; // Will 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.. // Change the reference doesn't reflect change here.. }
このコードは次のことを示しています配列の値の受け渡し動作。 changeContent を使用して配列の内容を変更すると、元の配列が変更されます。ただし、changeRef に新しい配列を割り当てても、元の参照は更新されません。その結果、参照変更後も arr[0] 値は 10 のままになります。
以上がJava の配列は値渡しですか、それとも参照渡しですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。