在研究某些Java代码时,我发现这两个代码之间可能有所不同。
我知道它们具有相同的功能,但我认为它们之间有一些不同之处。

这是第一个代码:

int[][] MainMatrix = new int[2][2];
int[][] A = new int[2][2];
MainMatrix[0][0]=100;
MainMatrix[0][1]=200;
MainMatrix[1][0]=300;
MainMatrix[1][1]=400;


A=MainMatrix;


这是第二个:

int[][] MainMatrix = new int[2][2];
int[][] A = new int[2][2];
MainMatrix[0][0]=100;
MainMatrix[0][1]=200;
MainMatrix[1][0]=300;
MainMatrix[1][1]=400;


for(int i=0;i<2;i++){
    for(int j=0;j<2;j++){
        A[i][j]=MainMatrix[i][j];
    }
}


那么,有什么区别呢?

最佳答案

我知道它们具有相同的功能


不完全的...

第二个示例具有两个包含相同值的不同对象。对一个的更新不会反映在另一个中。

第一个示例,您只有一个矩阵(至少在A=MainMatrix;之后)和两个引用。 A的任何更新将反映在MainMatrix中(反之亦然)。

10-02 02:39