有时java让我困惑。 我有大量的int初始化要做。

真正的区别是什么?

Integer.toString(我) 新的整数(我).toString ()


当前回答

new Integer(i). tostring()首先在i周围创建一个(冗余的)包装对象(它本身可能是一个包装对象Integer)。

首选Integer.toString(i),因为它不会创建任何不必要的对象。

其他回答

我也强烈推荐使用

int integer = 42;
String string = integer + "";

简单有效。

在这里 整数。toString调用Integer类中的静态方法。它不需要对象调用。

如果调用new Integer(i),首先创建一个Integer类型的实例,它是一个完整的Java对象,封装了int i的值。然后调用它的toString方法,要求它返回自己的字符串表示形式。

new Integer(i). tostring()首先在i周围创建一个(冗余的)包装对象(它本身可能是一个包装对象Integer)。

首选Integer.toString(i),因为它不会创建任何不必要的对象。

新的整数(我).toString (); 这条语句创建了Integer对象,然后调用它的方法toString(i)来返回Integer值的String表示形式。 Integer.toString(我); 它返回String对象,表示特定的int(整数),但这里toString(int)是一个静态方法。

在第一种情况下,Summary返回对象的字符串表示形式,在第二种情况下,它返回整数的字符串表示形式。

虽然我喜欢fhucho的推荐

String.valueOf(i)

具有讽刺意味的是,这个方法实际上调用

Integer.toString(i)

因此,如果你喜欢它的读取方式并且不需要基数,可以使用String.valueOf(i),但也知道它比Integer.toString(i)效率低。