When a value should never change after assignment, mark it with final:
final double TAX_RATE = 0.08;
final int MAX_RETRIES = 3;
If you try to reassign a final variable, the compiler rejects your code:
final int limit = 100;
limit = 200; // compile error
By convention, constant names use UPPER_SNAKE_CASE. This makes them visually distinct from regular variables when you're scanning code.
Why bother? Without final, someone (including future you) could accidentally reassign a value that was meant to stay fixed. The compiler enforces your intent. If TAX_RATE should always be 0.08, marking it final guarantees it.