Making a variable
static doesn't make it constant at all. However if a variable does represent a compile-time constant, it might as well be static. But whether or not a variable represents a constant is completely independant of whether it's marked static. In order to be a compile-time constant, a variable must be final, and it must be a primitive type or
String, and it must be initialized
at the time it's declared, and
using a value which is itself a compile-time constant expression.
A local variable may also be a constant, though of course a local variable cannot ever be static. If a non-local variable is a constant, then there is really no reason not to make it static (since all instances have the same value) however it's not a requirement.
In short, being static has almost nothing to do with being constant, except they do often go together.