ホームページ >Java >&#&チュートリアル >Java 配列: 値渡しか参照渡し?
Java の配列は、プリミティブ型でも本格的なオブジェクトでもない特別なステータスを保持します。この独特の性質により、Java 配列は値によって渡されるのか、それとも参照によって渡されるのかという疑問が生じます。
Java のすべてのものは値によって渡されます。 これには配列も含まれます。配列をメソッドに渡すとき、実際に渡されるのは、配列自体ではなく、その配列への参照です。
したがって、その参照を通じて配列の内容に加えられた変更は、元の配列に影響します。 。ただし、新しい配列を指すように参照を変更しても、元のメソッドに保持されている参照には影響しません。
次の Java スニペットを考えてみましょう。
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) } }
この例では、
この動作は、受け渡し操作に参照が含まれているにもかかわらず、Java の配列が値によって渡されることを強調しています。
以上がJava 配列: 値渡しか参照渡し?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。