Arkadaşlar merhaba, java eğitimine başladım, henüz çok yeniyim ve bir yeri anlamadım.

Kodu aşağıya ekliyorum.

package com.company;

public class Main {

    public static void main(String[] args) throws Exception {
        //Dizinin ilk n adet elemanını dizinin sonuna atayan ve baştaki elemanları sıfırlayan program.

        int a[] = {4, 8, 3, 1, 18, 9, 21, 20, 5, 17};
        int n = 3;
        int size = 10;
        for (int i = 0; i < n; i = i + 1)
            a[size - 1 - i] = a[n - 1 - i];
        for (int i = 0; i < size - n; i = i + 1)
            a[i] = 0;
        for (int i = 0; i < size; i = i + 1)
            System.out.println(a[i]);
    }
}
Burdaki

a[size - 1 - i] = a[n - 1 - i]; kısmındaki sonuç ne acaba ?

size = 10
-1
-i yaptık.

-i 2 oluyor sanırım.

Bunu atama operatörüyle a [n-1-i] ye atatık.

Burdada -i kısmını anlayamadım.

Bilen birisi açıklayabilirse çok sevinirim.
Kodun çıktısı

0
0
0
0
0
0
0
4
8
3
Kodlarda sorun yok gayet düzgün çalışıyor ve istenileni veriyor ama nasıl verdiğini anlayamadım maalesef.

İlk 3 rakamı nasıl tuttuk ve nasıl sona ekledik bi türlü anlayamadım