Array é uma estrutura de dados, onde armazenamos dados continuamente e guardamos seu endereço de memória, assim podemos resgatar os elementos (valores armazenados) através do seu índice (posição em que tal valor foi armazenado).
Em Java teríamos:
int numeros[] = new int[2];
int é o tipo dos valores que serão armazenados no array, como Java é uma linguagem de fortemente tipada, não podemos armazenar nenhum valor de outro tipo.
numeros é o nome do array que pode ser escolhido pelo programador, ele será usado para acessarmos o array posteriormente
[] usamos os colchetes para declarar que usaremos a estrutura de dados array
new int[2] usamos para separar os espaços na memória necessários (2)
2 é o comprimento do array, o número de posições que poderão ser usadas para armazenar elementos
Assim conseguimos armazenar dados da seguinte forma:
numeros[0] = 5;
O primeiro índice do array sempre será zero, sendo assim um array de duas posições terá os índices 0 e 1, um array de três posições terá suportará os índices 0,1 e 2 e assim por diante.
Para descobrir qual será o último índice suportado por aquele array basta pegar a quantidade de posições e subtrair 1.
Primeira posição de um array de cinco posições: 0
Ultima posição de um array de cinco posições: 5-1 = 4