为什么最终变量不是常量Java?

Why final variables are not constants Java?

我知道这样声明的变量:

public class Example {
    public static final int MY_CONSTANT = 10;

}

被认为是一个 Java 常量。我真的不明白为什么只声明为 final 的变量不能被视为常量?

final 而非 static 的变量对于一个对象具有常量值,这意味着它只能由该对象的构造函数修改。但是对于不同的对象,变量仍然可以有不同的值。这就是为什么它不是严格意义上的常数。

另一个原因是您不必创建对象来访问静态变量。为什么要创建对象才能访问常量?