在研究某些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
中(反之亦然)。