Execute várias vezes com cada uma das duas formas e veja aí. Aqui, na grande maioria das vezes, o String.valueOf demorou menos tempo.
Até mais,
S
sakuraiPJ
Testei aqui também o String.valueOf() é quase 2 vezes mais rapido (pelo menos na minha maquina).
Usando o "" + i
C:\>java Teste
Tempo decorrido: 70 ms.
Usando o String.valueOf(i)
C:\>java Teste
Tempo decorrido: 40 ms.
Obrigado.
S
SchuenemannPJ
É o esperado. A segunda forma tem que concatenar strings.
V
viraginePJ
A segunda forma primeiro faz a conversao e depois concatena…enquanto a segunda, alem de mais “elegante”, soh converte. o que eh para ser mais rapido mesmo…
L
lcgomesPJ
CD1, gostei do seu exemplo. Eu só não entendi essa classe StringBuilder, ela faz parte da biblioteca padrão 1.4 ou você a escreveu?
CD1, gostei do seu exemplo. Eu só não entendi essa classe StringBuilder, ela faz parte da biblioteca padrão 1.4 ou você a escreveu?
lcgomes,
A classe StringBuilder faz parte da biblioteca-padrão do Java a partir da versão 5. Ela faz a mesma coisa que a classe StringBuffer, porém, ela não é sincronizada (não é preparada para ser usada com threads), o que a torna mais rápida que a classe StringBuffer. Ou seja, se o buffer não estiver sendo compartilhado entre threads (como eu acho que é na maioria das vezes), use o StringBuilder, que é mais rápido.
Até mais,
C
clvPJ
Opa,
Gurizada… vejam o que eu fiz:
Fonte:
Stringasd=""+1;Stringqwe=String.valueOf(1);
Compilado e descompilado:
Strings="1";Strings1=String.valueOf(1);
Ou seja, o compilador, pelo menos o da Sun, é inteligente o suficiente para deixar o código melhor, porém isso somente com int de valor literal ou final int.
portanto, em geral o String.valueOf(int) é melhor!
Até porque ninguem iria fazer um código: