Casting is one type of conversion. A "conversion" changes the type of a reference or primitive value. Sometimes this is implicit -- for example, an upcasting assignment conversion, a widening method invocation conversion, or perhaps a
String conversion. Other times, an explicit cast is used. (See
JLS - 5 Conversions and Promotions.)
An object's "persistent state" is the information needed for it to "persist" outside the JVM so that it can be recreated later. For example, you might serialize an object to a file. Basically, the persistent state is the values of its instance variables.