A new class instance is explicitly created when evaluation of a class instance creation expression (§15.9) causes a class to be instantiated.
A new class instance may be implicitly created in the following situations:
• Loading of a class or interface that contains a
String literal (§3.10.5) may create a new
String object to represent that literal. (This might not occur if the same
String has previously been interned (§3.10.5).)
• Execution of an operation that causes boxing conversion (§5.1.7). Boxing conversion may create a new object of a wrapper class associated with one of the primitive types.