Wrappers de tipos primitivos em arraylist vs matrizes

Em "Core java 1", li

CUIDADO: Um ArrayList é muito menos eficiente que um array int [] porque cada valor é agrupado separadamente dentro de um objeto. Você deseja usar essa construção apenas para pequenas coleções quando a conveniência do programador for mais importante que a eficiência.

Mas no meu software eu já usei Arraylist em vez de matrizes normais devido a alguns requisitos, embora "O software deva ter alto desempenho e depois de ler o texto citado, comecei a entrar em pânico!" uma coisa que posso mudar é alterar variáveis duplas para Double para evitar o boxe automático e não sei se vale a pena ou não, no próximo algoritmo de amostra

public void multiply(final double val)
    {
        final int rows = getSize1();
        final int cols = getSize2();
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                this.get(i).set(j, this.get(i).get(j) * val);
            }
        }
    }

Minha pergunta é: mudar o dobro para o dobro faz a diferença? ou isso é uma micro otimização que não afeta nada? tenha em mente que talvez eu esteja usando matrizes grandes. 2º Devo considerar redesenhar todo o programa novamente?

questionAnswers(4)

yourAnswerToTheQuestion