29若執行以下的 Java 程式碼,則螢幕上輸出的數字依序為何?

【Reiko 邀請碼1597】評論
三個整數數組 ( array1、array2、array3) 分別以值{1, 2, 3, 4}、{5, 6, 7, 8}和進行宣告和初始化{9, 10, 11, 12}。array3然後分配 的引用array1。這意味著array3現在將指向與 相同的記憶體位置,array1因此保存值{1, 2, 3, 4}。array2然後分配 的引用array3。由於array3已分配給array1,array2現在也將指向與array1和相同的記憶體位置array3,因此它現在保存這些值{1, 2, 3, 4}。然後執行一個for迴圈來修改 的元素array1。對於 中的每個元素,它被重新分配、和array1中對應元素的總和。由於在前面的步驟之後所有三個數組都引用相同的記憶體位置,因此 中的每個元素將增加三倍。'array1''array2''array3''array1'執行另一個for循環,列印出 的元素array2。由於array2現在指向與 相同的位置array1,它將列印 的修改值array1,該值已增加了三倍。因此,如果我們遵循以下邏輯:array1[0]將1 + 1 + 1成為3。array1[1]將2 + 2 + 2成為6。array1[2]將3 + 3 + 3成為9。array1[3]將4 + 4 + 4成為12。因此,當'array2'列印時,輸出將為3, 6, 9, 12,因為'array2' now 指向'array1'。正確答案是(B)3,6,9,12。