Ответ 1
Обычный порядок использования модификаторов упоминается в Спецификация языка Java (а не Спецификация виртуальной машины Java), например. для модификаторов классов вы найдете следующее определение (extract):
ClassModifiers: ClassModifier ClassModifiers ClassModifier ClassModifier: one of Annotation public protected private abstract static final strictfp
[....]
Если в объявлении класса появляются два или более (модификатора) класса модификаторов, то обычно, хотя и не обязательно, они выглядят в порядке, соответствующем показанному выше в произведении для ClassModifier. (небольшой текст внизу абзаца!)
Вы найдете это предложение в нескольких других местах, где указано использование модификаторов, например. здесь для модификаторов полей.
Обновить. Я заменил "указанный/рекомендованный" на "обычный", чтобы сделать это приемлемым ответом. Учитывайте это, если вы читаете комментарии;-) (спасибо @EJP, чтобы это было ясно). Тем не менее I рекомендовал бы использовать обычный порядок.
Google также рекомендует использовать обычный заказ, упомянутый в спецификации Java.
public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp
Обновление. Существует новая инициатива Java Style Guidelines для проектов в сообществе OpenJDK. Он также имеет рекомендацию для порядок модификатора, а также включает новый default для Java 8.
public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp