我正在编写一个使用大量矩阵计算的java程序,在某些计算过程中,我会在进一步计算之前使用多个临时“存储”矩阵。
我已经在类变量中声明了临时矩阵
private double[][] intermediateMatrixA;
private double[][] intermediateMatrixB;
private double[][] intermediateMatrixC;
private double[][] intermediateMatrixD;
但是,我永远不会以intermediateMatrix = new double[][]
的形式初始化构造函数或方法中的矩阵。
相反,我正在为每个临时矩阵intermediateMatrix = [the product of a matrix calculation]
我的问题:我正在使用安全baring的方法是否会在其他计算中重用临时数组?每当我声明我的一个临时矩阵应该等于另一个数组时,它将等于该矩阵的确切维数和值?
提前致谢 问候 迈克
答案 0 :(得分:0)
是的,从上面开始,您的变量将指向您的方法或计算结果的方式是'安全的',并且将保留行和列。
private double[][] intermediateMatrixA = new double[3][4];
//etc etc
intermediateMatrixA =new double[5][6];
完全没问题,只要它总是double[][]
;跟踪行和列的逻辑取决于你。
您可以将double[][]
的类型分配给其他类型的double[][]
,但不能double[]
分配给double[][]
。
如果您打算一次又一次地使用它们,我建议您在分配之前将它们设置为null,以防万一。