First, if an object is marked final you can never change what that object to new Object or make it refer to another instance of it. It is final...but if the object that is marked final has members like ints and Strings that aren't marked final they can be changed "in" the final object reference.
I hope that is clear in the example below.
For the second issue. It's the programmer that does the serialization. It comes in a later chapter so for now just understand that if something is being serialized transient variables are not serialized.
1) Correct statement is "The data within the object can be modified, but the reference variable cannot be changed."
In java, reference variables are used to refer to the objects created on the heap (Analogous to pointers in c/c++)
The statement mean if you marked the variable the content of variable cant be changed i.e it refer to the same object once initialized..
How ever the state of the object can be changed/accessed by calling its methods ...
2)If you mark an instance variable as transient, JVM skips this variable while serializing the object containing it.
Serialization is a process of saving objects,While doing that process sometimes you may need to skip some variables, remember this for now...
Note that serialization concepts have been removed from exam's objectives,
If you are interested you can refer other books (I think old edition of K&B still contains serialization concepts)...