Arrays em Java: como declarar e inicializar? Guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que essa pergunta incomoda até desenvolvedores Java experientes?

\n\n

Se você já pesquisou no Google "How do I declare and initialize an array in Java?", você não está sozinho. Esta pergunta no Stack Overflow acumulou centenas de milhares de visualizações e continua crescendo. Parece simples, não? Mas o diabo, como sempre, está nos detalhes. Java é uma linguagem com tipagem forte, e a sintaxe de arrays pode confundir iniciantes.

\n\n

Neste artigo, vamos analisar todas as formas possíveis de declarar e inicializar arrays em Java. Você aprenderá a diferença entre int[] arr e int arr[], como criar arrays de objetos corretamente e como evitar a armadilha do NullPointerException. Vamos lá!

\n\n

1. Básico: o que é um array em Java?

\n\n

Um array em Java é um contêiner que armazena um número fixo de elementos do mesmo tipo. Ao contrário de Python ou JavaScript, onde os arrays podem ser dinâmicos, em Java o tamanho do array é definido na criação e não pode ser alterado.

\n\n
int[] numbers; // declaração (declaration)\nnumbers = new int[5]; // inicialização (initialization) — alocação de memória para 5 elementos\n
\n\n

Na primeira linha, dizemos ao compilador: "Quero criar uma variável que fará referência a um array de números inteiros". Na segunda, alocamos memória para 5 elementos. Só depois disso o array está pronto para uso.

\n\n

2. Formas de declarar um array

\n\n

Em Java, existem duas sintaxes para declarar um array. Ambas são válidas, mas a comunidade Java (e os padrões oficiais de codificação da Oracle) recomenda a primeira opção.

\n\n

Forma 1: tipo de dado + colchetes antes do nome da variável

\n
int[] myArray;\nString[] names;\ndouble[] prices;\n
\n\n

Forma 2: colchetes após o nome da variável (estilo C/C++)

\n
int myArray[];\nString names[];\ndouble prices[];\n
\n\n

Qual escolher? A primeira opção é mais natural de ler: int[] myArray — "array de números inteiros chamado myArray". A segunda opção pode causar confusão, especialmente ao declarar várias variáveis em uma única linha:

\n\n
int[] arr1, arr2; // ambas as variáveis são arrays\nint arr3[], arr4; // arr3 é um array, arr4 é um número inteiro comum (erro!)\n
\n\n

Portanto, sempre use tipo[] nome.

\n\n

3. Inicialização de array: 4 formas comprovadas

\n\n

Após a declaração, o array precisa ser inicializado. Veja como fazer isso corretamente.

\n\n

Forma 1: Criando um array vazio com tamanho especificado

\n
int[] numbers = new int[10]; // array de 10 elementos, todos iguais a 0 (padrão)\nString[] words = new String[5]; // array de 5 strings, todas iguais a null\n
\n\n

Esta forma é adequada se você planeja preencher o array posteriormente (por exemplo, em um loop). É importante lembrar: para tipos numéricos, os valores padrão são 0, para boolean é false, para tipos de referência é null.

\n\n

Forma 2: Inicialização com literal de array

\n
int[] numbers = {1, 2, 3, 4, 5};\nString[] fruits = {"apple", "banana", "orange"};\n
\n\n

Esta é a forma mais curta e conveniente quando você já conhece todos os elementos. Observe: essa sintaxe funciona apenas na declaração.

\n\n

Forma 3: Array anônimo (sem nome de variável)

\n
int[] numbers = new int[]{1, 2, 3, 4, 5};\n
\n\n

Esta opção é útil quando você precisa passar um array para um método sem criar uma variável separada:

\n\n
printArray(new int[]{10, 20, 30});\n
\n\n

Forma 4: Inicialização através de loop

\n
int[] squares = new int[10];\nfor (int i = 0; i < squares.length; i++) {\n    squares[i] = (i + 1) * (i + 1);\n}\n
\n\n

Ideal para preenchimento dinâmico, por exemplo, calculando valores ou lendo dados de um arquivo.

\n\n

4

Blogs

Book Recommendations