for(int i=0; i<a.length; i++){
a[i]=i++;
первое число - 0
второй круг цикла: i = 1. С помощью i++ ты превращаешь это в i = 2, и это i = 2 записывается в a[2]. a[1] при этом осталось незаполненным, потому что инкремент произошел до начала записи этого числа в массив. и так далее