+ 5
A class is a definition for objects of its type. It's not a runtime object. To get objects you create instances of classes using the 'new' operator. An object instance's behaviors, memory use, inheritance hierarchy, and so on are defined by its class.
Instance variables are defined in a class definition but not created until/unless you instantiate an instance of the class (which creates a runtime object that has memory allocated on the heap). The values of an instance variable in different instances of a class can all be different. The value of a class variable is the same across all instances of a class in a JVM. Class variables are initialized when their enclosing class is loaded, whether or not any instances of the class are created.



