transient: indicates that the member of the class need not be serialized during serializatin process (hence need not be restored during dererialization)
volatile: indicates that the member variable is accessed by multiple threads simultaneously and certain optimizations should not be allied for it.See Java Memory Model for detailed info.