Каков разумный порядок модификаторов Java (абстрактный, окончательный, общедоступный, статический и т.д.)?

Что такое разумный порядок модификаторов Java?

  • абстрактный
  • конечная
  • родной
  • частным
  • защищенный
  • общественности
  • статичным
  • strictfp
  • синхронизированы
  • переходная
  • летучий

Обновить

Я изменил формулировку из рекомендуемой до разумной, чтобы успокоить обсуждения, рекомендуется ли заказ или нет.

Ответ 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

Ответ 3

В зависимости от их значений int.

Модификатор (платформа Java SE 8)

  • 1: public
  • 2: частный
  • 4: protected
  • 8: static
  • 16: final
  • 32: синхронизированный
  • 64: volatile
  • 128: переходный
  • 256: native
  • 512: интерфейс
  • 1024: abstract
  • 2048: strictfp

Ответ 4

Я использую два правила, чтобы запомнить последовательность модификаторов, но не включает strictfp, поскольку он никогда не используется мной. FYI.

  • синхронизированные native - это люди с наименьшим приоритетом.

  • PPP AS FTV: PPP {шумовой звук} КАК {смотреть} FTV {France TV}.

:)