Java Modifier Summary

Modifier Used on Meaning
abstract class

interface

method

Contains unimplemented methods and cannot be instantiated.

All interfaces are abstract. Optional in declarations

No body, only signature. The enclosing class is abstract

final class

method

field

variable

Cannot be subclassed

Cannot be overridden and dynamically looked up

Cannot change its value. static final fields are compile-time constants.

Cannot change its value.

native method Platform-dependent.
No body, only signature
none(package) class

interface

member

Accessible only in its package

Accessible only in its package

Accessible only in its package

private member Accessible only in its class(which defines it).
protected member Accessible only within its package and its subclasses
public class

interface

member

Accessible anywhere

Accessible anywhere

Accessible anywhere its class is.

strictfp class

method

All methods in the class are implicitly strictfp.

All floating-point computation done is strictly conforms to

the IEEE 754 standard. All values including intermediate results

must be expressed as IEEE float or double values.

It is rarely used.

static class

method

field

initializer

Make an inner class top-level class

A class method, invoked through the class name.

A class field, invoked through the class name

one instance, regardless of class instances created.

Run when the class is loaded, rather than when an instance is created.

synchronized method For a static method, a lock for the class is acquired before

executing the method. For a non-static method, a lock for the specific

object instance is acquired.

transient field Not be serialized with the object, used with object serializations.
volatile field Accessible by unsynchronized threads, very rarely used.

All Possible Combinations of Features and Modifiers

Modifier Class Variable Method Constructor Free-Floating Block
public yes yes yes yes no
protected no yes yes yes no
none or package or default yes yes yes yes yes
private no yes yes yes no
final yes yes yes no no
abstract yes no yes no no
static no yes yes no yes
native no no yes no no
transient no yes no no no
volatile no yes no no no
synchronized no no yes no yes
strictfp yes no yes yes no