Java int to String - Integer.toString(i) vs new Integer(i).toString()
Sometimes java puzzles me.
I have a huge amount of int initializations to make.
What's the real difference?
If you call
new Integer(i) you create an instance of type
Integer, which is a full Java object encapsulating the value of your int. Then you call the
toString method on it to ask it to return a string representation of itself.
If all you want is to print an
int, you'd use the first one because it's lighter, faster and doesn't use extra memory (aside from the returned string).
If you want an object representing an integer value—to put it inside a collection for example—you'd use the second one, since it gives you a full-fledged object to do all sort of things that you cannot do with a bare
Read more… Read less…
new Integer(i).toString() first creates a (redundant) wrapper object around
i (which itself may be a wrapper object
Integer.toString(i) is preferred because it doesn't create any unnecessary objects.
This statement creates the object of the Integer and then call its methods
toString(i)to return the String representation of Integer's value.
It returns the String object representing the specific int (integer), but here
Summary is in first case it returns the objects string representation, where as in second case it returns the string representation of integer.
I also highly recommend using
int integer = 42; String string = integer + "";
Simple and effective.
Although I like fhucho's recommendation of
The irony is that this method actually calls
String.valueOf(i) if you like how it reads and you don't need radix, but also knowing that it is less efficient than