public
: Indicates that the element is visible to all classes in the Java program.private
: Indicates that the element is only visible within the class in which it is defined.protected
: Indicates that the element is visible to the class in which it is defined and any subclasses of that class.static
: Indicates that the element is a class level element, rather than an instance level element.final
: Indicates that the element cannot be modified once it has been initialized.abstract
: Indicates that the element is an abstract class or method, which must be implemented by a subclass.synchronized
: Indicates that a method can only be accessed by one thread at a time.transient
: Indicates that a field should not be serialized.volatile
: Indicates that a field can be modified by multiple threads and that the value of the field should be read from main memory, rather than from a thread's local cache.