Ao ler o trecho de determinado livro apareceu uma dúvida sobre arrays. Gostaria de uma ajuda para entender, tecnicamente, a diferença entre os trechos de código abaixo.
ou seja, tanto faz se o array é inicializado com constantes quanto com expressões, o compilador faz exatamente a mesma coisa.
jurunaloco
para usar um array é necessário informar seu tamanho… mas
no primeiro caso o array está sendo declarado e inicializado de uma vez só, nesse caso nao é necessário informar o tamanho, pois ele será deduzido pelo conteudo dentro das chaves
na segunda opção… é declarado um array de 15 posições
porém nao foi atribuido nenhum valor a essas posições… entao o que é feito no laço é: atribuir um valor y para cada posição do array, depois imprimindo ele
resumindo… a primeira forma vc declara e ja inicializa o array. o tamanho do array será deduzido pelos itens dentro da chave… internamente pelo Sr java
a segunda oção ele cria um array de 15 posições mas nao insere nenhum dados neles… , o que é feito depois dentro do laço
outra forma de percorrer um array é assim:
int[] array = {1,2,3,4,5};
for(inti:MeuArray){System.out.println(i);}
J
java_study
int[] array = {1,2,3,4,5}; //sem instância
int[] array = new int[5]; //com instância: NEW
Pelo menos é isso que eu entendo por instância.
int[] array // declaração
array = new int[5] // criação de instância
array[0] = 1; // inicialização
M
marcobiscaro2112
Você quer entender a diferença entre os dois trechos? Se for isso, a questão de instanciação existe da mesma forma: é declarado e instanciado um array de inteiros em ambos os casos.
Agora, quanto ao preenchimento do vetor, o primeiro caso é feito de forma “estática”, e o segundo você define o tamanho e preenche “dinamicamente”. Diferença entre os métodos: nesse caso nenhuma, mas se você precisasse colocar os números de 1 até 1 milhão no vetor, não sugiro a forma “estática”.
A segunda forma pode causar uma perda de performance (eu diria, insignificante), mas poupa muito trabalho.