Use final fields and avoid setters. Frame the concept in practical terms so you can explain it during interview discussion.
To maintain immutability, value objects should have final fields initialized only once, typically through a constructor. Any method that modifies data should return a new instance. This ensures thread safety and predictability. Consider a 'Coordinate' object: once created, its values should never change.