Em termos de medição de desempenho, se você está considerando o desempenho do tempo, então Integer.toString (i); é caro se você estiver ligando menos de 100 milhões de vezes. Caso contrário, se houver mais de 100 milhões de chamadas, o novo Integer (10) .toString () terá um desempenho melhor.
Abaixo está o código através de você pode tentar medir o desempenho,
public static void main(String args[]) {
int MAX_ITERATION = 10000000;
long starttime = System.currentTimeMillis();
for (int i = 0; i < MAX_ITERATION; ++i) {
String s = Integer.toString(10);
}
long endtime = System.currentTimeMillis();
System.out.println("diff1: " + (endtime-starttime));
starttime = System.currentTimeMillis();
for (int i = 0; i < MAX_ITERATION; ++i) {
String s1 = new Integer(10).toString();
}
endtime = System.currentTimeMillis();
System.out.println("diff2: " + (endtime-starttime));
}
Em termos de memória, o
novo inteiro (i) .toString ();
precisará de mais memória, pois criará o objeto toda vez; portanto, ocorrerá a fragmentação da memória.
"" + 42
, mas ei, sou eu. O formulário 2 resultará em um novo objeto inteiro (para a maioria dos valores de i) como intermediário. Também é mais digitação.