2015-04-27 41 views
5

我想知道什麼是sun.misc.unsafe.arrayIndexScale的使用,在javadoc據說:arrayIndexScale返回的值是指什麼?

報告在給定的數組類的存儲分配尋址單元的比例因子。但是,對於像getByte(java.lang.Object,int)這樣的訪問器,「窄」類型的數組通常無法正常工作,因此這些類的比例因子被報告爲零。

此方法返回int,但我不確定該值的含義。

+0

我不認爲這是一般用法。 –

+2

當然它並不是爲了它,它是*不安全的*因爲某種原因:)然而,這並不是一個壞問題。 – meskobalazs

+0

你爲什麼要使用'sun。*'軟件包中的東西,那些東西並不是公開的! **你不應該使用這些類,特別是如果你不得不問這樣的問題。** –

回答

2

該方法爲您提供Java對象內存佈局信息。

這用於確定給定數組佔用的內存量。比例因子是一個術語,表示一個給定的數量,在這種情況下,存儲器正被乘以代表總數。 您不應該使用您嘗試使用的方法;這是不安全的

然而,有更安全的版本,你可以使用: staticFieldBasestaticFieldOffset

+0

你能解釋'arrayIndexScale','staticFieldBase'和'staticFieldOffset'之間的關係嗎? –