我们知道对象的大小取决于它的字段类型。但是对象实例化时间是否取决于其字段类型?看我的测试
public class Test {
byte f1;
byte f2;
byte f3;
byte f4;
byte f5;
byte f6;
byte f7;
byte f8;
byte f9;
byte f10;
public static void main(String[] args) {
int n = 1000000;
Test[] a = new Test[n];
long t0 = System.currentTimeMillis();
for(int i = 0; i < n; i++) {
a[i] = new Test();
}
System.out.println(System.currentTimeMillis() - t0);
}
}
也许不是一流的,对于不同的字段类型仍然给我相当稳定的结果:
byte - 125 ms
int - 250 ms
long - 370 ms
这是为什么?我在笔记本(Celeron 925)上从 Eclipse 运行它,它需要 -Xmx1024M。