Difference between final static and static final
No difference at all. According to 8.3.1 - Classes - Field Modifiers of the Java Language Specification,
If two or more (distinct) field modifiers appear in a field declaration, it is customary, though not required, that they appear in the order consistent with that shown above in the production for FieldModifier.
For fields, the said production lists the modifiers in this order:
@Annotation
public
protected
private
static
final
transient
volatile
And for methods:
@Annotation
public
protected
private
abstract
static
final
synchronized
native
strictfp
private static final String API_RTN_ERROR= "1";private final static String API_RTN_ERROR= "1";static private final String API_RTN_ERROR= "1";static final private String API_RTN_ERROR= "1";final static private String API_RTN_ERROR= "1";final private static String API_RTN_ERROR= "1";
even all above are same the position of first three is intercangeable.