我們知道對象大小取決於其字段類型。但是,對象實例化時間取決於它的字段類型嗎?見我的測試對象實例化時間取決於它的大小嗎?
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
這是爲什麼?我在筆記本上使用Eclipse(賽揚925)運行它,它需要-Xmx1024M。
你有什麼問題嗎?較大的類型會讓您的運行時間變慢。什麼是意外? –
我的問題是爲什麼更大的類型實例化更長的時間 –
因爲,即使假設內存分配時間不變(可能不是這種情況),您仍然需要將所有內存設置爲0,並且將更多內存設置爲0需要更長的時間。 –