我们知道对象大小取决于其字段类型。但是对象实例化时间是否取决于其字段类型?看我的测试
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。
答案 0 :(得分:0)
较大类型需要更多时间,因为操作系统必须搜索 HEAP 中的适当内存量适合那种类型。因此类型越大,一般需要更多时间。
大多数时候对象实例化时间与字段类型成正比