Поля, для которых в объявлении указан модификатор static, называются статическими полями или переменными класса.Они связаны с классом, а не с каким-либо объектом.
Вот концепция вокруг него
https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
В вашем случае i
- этостатическая переменная, и она связана с классом, а не объектом.
Таким образом, буквально существует только одна переменная i
для всех объектов.Вот почему вы видите, что одно и то же значение печатается для всех ваших операторов печати (с последним обновленным значением).