Yes they do. The javadoc of the synthetic method values()
states it. See JLS 8.9.2.
Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants as follows:
and the javadoc for Enum.ordinal() states
Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero).
So if you do
TestEnum.values[0]
you will always get
TestEnum.VALUE_A
in your case.