Alguém sabe me explicar o porque do resultado 1024, programa em Java

public class Menor1000 {

public static void main(String[] args) {
	
	int a =2;
	
	while(a < 1000) {
		a = a*2;
	}

	System.out.println(a);
	
	//Imprime 1024;
}

}

Simples, porquê o valor que antecede a condição do laço é 512, então ele executará mais uma vez e chegará ao valor de 1024, como 1024 é maior que 1000 o laço não é mais executado e a aplicação se encerra.

Obrigada!