Is there any similarity between Value Object and Value Type?
IMHO, the term 'sharing' in the two kind of objects is very different...
'Java Persistence with Hibernate
' book says:
The lifespan of a value type instance is bounded by the lifespan of the owning entity instance. A value type doesn’t support shared references: If two users live in the same apartment, they each have a reference to their own homeAddress instance. The most obvious value types are classes like Strings and Integers, but all JDK classes are considered value types.
String suports shared references and it's not bounded by the lifespan of the entity instance! Is String really a Value Type?
On the other hand, a Value Object suports shared references when it's immutable (like String)!