int i = 4; String s = i + "";Ou usando a API do Java:
int i = 4; String s = String.valueOf(i);Bem, em outros tópicos já falei sobre o funcionamento de Strings no Java, e inclusive no meu blog, que anda desatualizado, publiquei um post sobre Strings: http://marciojrtorres.blogspot.com.br/2010/06/strings-no-java.html
A questão é que o primeiro modo resulta na criação de uma nova String resultando da operador + sobrecarregado, e a segundo a partir da estrutura interna de Strings e Integer para criar uma String a partir de um array de char, onde muitos são constantes de Integer, podem verificar o código-fonte.
Na prática, o segundo modo é mais rápido, podem usar o código a seguir para testes:
public static void main(String[] args) { converteInteiroStringGambi(); converteInteiroStringJava(); } private static void converteInteiroStringGambi() { long inicio = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { String s = i + ""; } System.out.println("Tempo decorrido: " + (System.currentTimeMillis() - inicio) + "ms"); } private static void converteInteiroStringJava() { long inicio = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { String s = String.valueOf(i); } System.out.println("Tempo decorrido: " + (System.currentTimeMillis() - inicio) + "ms"); }Atenção, não estou fazendo apologia ao segundo modo, usando String.valueOf, na verdade, podem seguir usando o primeiro, mas com a consciência de que é mais lento. A diferença é ínfima em uma ou duas operações esporádicas, mas evidente quando é usando dentro de iterações, como no exemplo. Enfim, sabendo as regras, é só saber quando segui-las e quando quebrá-las, é uma prerrogativa de programar deliberadamente e não por coincidência.
Nenhum comentário:
Postar um comentário