Public - Public variables declared can be accessed everywhere
Protected - Protected variables limits access to inherited and parent classes
Private - Private variables limits visibility only to the class that defines the variables.
Static - A static variable exists only in a local function scope, but it does not lose its value when program execution leaves this scope.
Final - Final keyword prevents child classes from overriding a method by prefixing the definition with final.
Transient - A transient variable is a variable that may not be serialized.
Volatile: A variable that might be concurrently modified by multiple threads should be declared volatile. Variables declared to be volatile
will not be optimized by the compiler because their value can change at any time.