In OpenJDK, for the method:
public static Double valueOf(double d)
The javadoc says:
Returns a Double instance repre
The designers of the API probably didn’t want to restrict alternate implementation. Those are now free to add caching to the Double class.
Double