Access modifiers are keywords used to specify the declared accessibility of a member or a type. There are three access modifiers in
Java: public, protected and private. However, there are four access controls (levels of access), the fourth being default or package level access (no modifier added). A class can only use public or default, while most methods and variables take all four.
Nonaccess modifiers modify the declaration of a member or a type. They can be used in addition to whatever access control there is on a class. A class declaration can be modified with keywords final, abstract, or strictfp (note: you can't always mix nonaccess modifiers).
Methods and instance variables can also take transient, synchronized, native, strictfp, and static as modifiers.