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

真正的区别是什么?

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


当前回答

在性能度量方面,如果你考虑的是时间性能,那么Integer.toString(i);如果你调用的次数少于1亿次就会很昂贵。否则,如果调用次数超过1亿次,则新的Integer(10). tostring()将执行得更好。

下面是代码,通过你可以尝试测量性能,

public static void main(String args[]) {
            int MAX_ITERATION = 10000000;
        long starttime = System.currentTimeMillis();
        for (int i = 0; i < MAX_ITERATION; ++i) {
            String s = Integer.toString(10);
        }
        long endtime = System.currentTimeMillis();
        System.out.println("diff1: " + (endtime-starttime));

        starttime = System.currentTimeMillis();
        for (int i = 0; i < MAX_ITERATION; ++i) {
            String s1 = new Integer(10).toString();
        }
        endtime = System.currentTimeMillis();
        System.out.println("diff2: " + (endtime-starttime));
    }

在内存方面,

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

会占用更多的内存,因为它每次都会创建对象,所以会发生内存碎片。

其他回答

简单的方法是将""和整数连接起来:

int i = 100;

String s = "" + i;

现在s将有100作为字符串值。

我也强烈推荐使用

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

简单有效。

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

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

在性能度量方面,如果你考虑的是时间性能,那么Integer.toString(i);如果你调用的次数少于1亿次就会很昂贵。否则,如果调用次数超过1亿次,则新的Integer(10). tostring()将执行得更好。

下面是代码,通过你可以尝试测量性能,

public static void main(String args[]) {
            int MAX_ITERATION = 10000000;
        long starttime = System.currentTimeMillis();
        for (int i = 0; i < MAX_ITERATION; ++i) {
            String s = Integer.toString(10);
        }
        long endtime = System.currentTimeMillis();
        System.out.println("diff1: " + (endtime-starttime));

        starttime = System.currentTimeMillis();
        for (int i = 0; i < MAX_ITERATION; ++i) {
            String s1 = new Integer(10).toString();
        }
        endtime = System.currentTimeMillis();
        System.out.println("diff2: " + (endtime-starttime));
    }

在内存方面,

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

会占用更多的内存,因为它每次都会创建对象,所以会发生内存碎片。

好:

Integer.valueOf(i).toString()