When you say you "jobject type's value" I am guessing you mean the value returned by the toString. If you look at the java doc It states that:
The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
And if you look at the Java doc for the hashCode method it states:
Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer
and also
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
Update: Response to Ryan's comment: System.identityHashCode will get you the original hash code even if the hashcode method is overridden. However, like comments note its not really unique.
So I guess the answer to your questions is yes its immutable and its very very likely to be unique but you should read the docs or source code for your JVM.