public、abstract、static、finalなど修飾子の順番

今年はプログラムを書かないと決めていたのですが、誰にも言っていない自分との約束ほど破るのが簡単なのものはなく、やっぱりやめてちょっと書いてみちゃおうかなーなんてノリで書きはじめていると、前々から気になっていた初心者的な疑問がものすごく気になってきたので、ナニカを期待して書いておこうと思います。

abstract public void hoge();
public abstract void hoge();

どっち?

static public void hoge();
public static void hoge();

どっち?

final public int hoge = HOGE;
public final int hoge = HOGE;

どっち?

final static public int hoge = HOGE;
final  public static int hoge = HOGE;
static final public int hoge = HOGE;
static public final int hoge = HOGE;
public final static int hoge = HOGE;
public static final int hoge = HOGE;

どれ?

(略)


とりあえず、各項目の1段目を採用しています。あーでもふつーアクセス修飾子は一番最初だろ? とも思います。netBeansには、展開すると『public static final』になる『psf』なんていうショートカットキーがあるので、これが一般的な書き方なのかなとか。
んー

こちら側で決めようとする行為が間違っているというか、意味のなく正解の見つからない問題を考えているということなのでしょうけど、集団でコーディングしていて(他人の書いたフレームワークなどを使う場合も含む)、人間によって書き方がバラバラだと気になる……、いや、気になるというか、パーザーを作るときにほんのちょこっとだけ面倒になる、いや、作らないけど、作ることになった架空の人物に感情移入してしまうというか……、いや、違う、僕の脳内のパーザーがjavaコードをスキャンするときにいろいろ割り込みがかかって面倒くさいって言っているので、ナニカ不安を感じているのが正解か。
pppppppppppppppp
qawsedrftgyhujikolp;

馴れでしょうか。馴れでしょうか。