What is the effect of declaring a variable as `final` in Java?
A `final` variable means its value can be changed only once, either during initialization or inside the constructor.
You're almost correct, but once a `final` variable is initialized, its value cannot be changed again, even inside the constructor.
Can you clarify the exact moment a `final` variable must be initialized and why its value is fixed afterward?