This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
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.