I\'ve been studying Java String for a while. The following questions are based on the below posts
Java String is special
Immutability of String in java
From the Java Oracle documentation:
Strings are constant; their values cannot be changed after they are created.
And again:
String buffers support mutable strings. Because String objects are immutable they can be shared.
Generally speaking: "all primitive" (or related) object are immutable (please, accept my lack of formalism).
Related post on Stack Overflow:
About the object pool: object pool is a java optimization which is NOT related to immutable as well.