在Java中,您聲明一個數組,然後調用new
來分配空間。因此,隨着4個名爲整數類佔用較少的空間,並具有更好的地方比大小4不需要新對象的Java數組:分配連續性
數組有沒有辦法有4個元素的數組,但有它的分配方式相同命名vaiables a1, a2, a3, a4
對於那些瞭解C++,這是一樣的,要求int x[4]
而不是int *x
class X
{
int x1;
int x2;
int x3;
int x4;
};
[ Class OID ][x1][x2][x3][x4] = 1 ref + 4 int
class Y
{
int y[];
};
y=new int[4];
[ Class OID ][Y] ======> [Array OID][Array Size][y][y][y][y] = 3 ref + size + 4 int
有4類命名整數與3個元素的數組具有相同的空間。第四個元素空間是數組大小(儘管有時這被吸收到頭中,而在其他情況下,它被分配舍入吞噬)。數組的分配基本上與帶有字段的對象的分配相同。 –
@HotLicks - 我認爲它可能很昂貴 - 類中的指針(在64位系統上)大小爲2個整數 - 數組對象的運行時信息也是一個指針 - 另一個2 - 加上大小 - 另一個2 - 然後4個整數= 10個整數,而不是4個大小相同的大小加上可能導致緩存未命中的負載 –
無論是在數組中還是在常規對象中,Java int都是4個字節。數組和常規對象都必須包含類指針。現在,如果你正在談論的是將一個對象(無論是數組還是常規對象)嵌入到另一個對象中,而不是使用指針(「引用」)來引用該對象,那麼這是無法完成的。如果你想這樣做使用C#(雖然我不確定C#可以真正做到而不是簡單地模擬它)。 –