为什么final修饰的i可以通过构造方法赋值两次

为什么final修饰的i可以通过构造方法赋值两次


public class Test01 {
    public static void main(String[] args) {

        A a = new A ();
        A s = new A(8);
    }
}
class A {
    final int i;
    public A(){
        this.i = 5;
        System.out.println(i);
    }
    public A(int a){
        this.i=a;
        System.out.println(i);
    }
}
5
8

Process finished with exit code 0

一个有参构造一个是无参构造,实例化的对象是两个对象,不是一个对象

构造函数重载,类成员变量i只会被执行一次。外部两个构造函数,生成了两个对象。但每个对象的成员i都只被初始化一次