Observei que na prática nao há nenhuma diferença. Mas alguém saberia me dizer por que escrever de uma forma ou de outra?
e.g.:
[code]String[] nomes1 = { “Nome1”, “Nome2”, “Nome3”, “Nome4”, “Nome5” };
String nomes2[] = { “Nome1”, “Nome2”, “Nome3”, “Nome4”, “Nome5” };
for (String nome : nomes1) {
System.out.println(nome);
}
for (String nome : nomes2) {
System.out.println(nome);
}[/code]
Nenhuma, o Java permite que você declare o array das duas formas.
Acho melhor escrever String [] nomes; acho que fica melhor para quem ver o código entender que estou declarando arrays, naquela linha.
Quando você declara mais de uma variavel na frente assim
String[] nomes1, nomes3, nomes4
Todas essas váriaveis são arrays de string
Já assim
String nomes2[], nomes3, nomes4
Apenas nomes2 é array de string, nomes3 e nomes4 são variaveis “simples” do tipo string.
Para declarar nomes3 e nomes4 como array de string você teria que fazer o seguinte
String nomes2[], nomes3[], nomes4[]
Ok, muito obrigado pelas respostas.
Como dito, não há diferença…
Agora, é uma boa pratica de programação usar as convenções já existentes pelos outros programadores, que, neste caso, é ‘String [] nomes’.
Abrços
não é que não há diferenças, a diferença na verdade está no que o colega furutani disse.
String nomes2[], nomes3, nomes4
Na verdade isso NÃO é uma boa prática, declarar tipo diferentes na mesma linha.
Quando se cria um array, se cria um array de alguma coisa, então a indicação fica mais nítida para leitura quando indicada na própria “tipagem” do array:
int[] idades;
String[] nomes;
Outra boa prática é utilizar uma nomenclatura no plural para indicar coleções, seja um array ou uma lista, tudo que contém 1 ou mais elementos.
http://java.sun.com/docs/codeconv/
[quote=rodrigomelo]Observei que na prática nao há nenhuma diferença. Mas alguém saberia me dizer por que escrever de uma forma ou de outra?
e.g.:
String[] nomes1 = { "Nome1", "Nome2", "Nome3", "Nome4", "Nome5" };
String nomes2[] = { "Nome1", "Nome2", "Nome3", "Nome4", "Nome5" };
[/quote]
Nas outras linguagems e em especialmente o C de onde o Java tirou a sua sintaxe utilizam a versão String nome[]
A logica para isso é que a variável é um array e os membros do array são do tipo String.
Mas java é OO e então a sintaxe String[] nome foi introduzida. A logica aqui é que a variável não é um array, é um objeto, e o objeto é que é um Array de elementos String. ( Imagina que aquilo é a forma simplificada de escrever Array nomes )
O java entende a sintaxe do C por motivos de compatibilidade e historicos, mas promove o uso da sua propria sintaxe porque é mais clara. Por detrás dos panos String nomes[] faz o mesmo efeito que String[] nomes.
A forma preferivel, em java, é String[] nomes. Principalmente porque é mais clara.
Pessoal , boa explicação…
mas alguem sabe me dizer qual eh a diferença entre essas linhas d código???
String texto[] = new String[2];
texto[0] = "Ola Mundo";
texto[1] = new String("Ola Mundo");
estou com duvida nisso!!!
[quote=FelipeGeorge13]Pessoal , boa explicação…
mas alguem sabe me dizer qual eh a diferença entre essas linhas d código???
String texto[] = new String[2];
texto[0] = "Ola Mundo";
texto[1] = new String("Ola Mundo");
estou com duvida nisso!!![/quote]
A JVM tem uma área especial de memória chamada String pool
Quando eu faço
texto[0] = "Ola Mundo"
eu estou criando um objeto - na string pool - e uma referência pra este objeto
quando eu faço
texto[1] = new String("Ola Mundo");
eu estou criando dois objetos - um na string pool e outra não - e uma referência
A vantagem da string pool é que quando eu estiver no meu código e precisar novamente de uma string Olá Mundo e esta já estiver na string pool eu não irei alocar um outro objeto, mas apenas criar uma referência para a que já exite…
[]´s