I find myself getting confused as to the order of access and non access modifiers. For example
abstract void go()
abstract public void go()
public final
Just as in the English language, adjectives (modifiers such as public, static, volatile, etc) precede the noun they describe (class, interface, or any type such as int or String). The order of the modifiers doesn't matter to the language, but by reading code you'll quickly find which feel more natural.