2014-09-06 62 views
-1

當Java不知道數組的每個元素有多大時,它分配多少內存?在初始化Object數組時,Java中分配了多少內存?

+0

Java總是知道數組的大小。這就是爲什麼它需要它的元素數量。 – eldjon 2014-09-06 21:57:13

+0

有一個32-48字節的標題,通常爲數組本身加上空間,字節爲字節。並且分配通常被舍入到一些邊界 - 16個字節或32個字節。 – 2014-09-06 22:06:08

+0

看到http://stackoverflow.com/questions/3444395/java-object-and-array-memory-location – 2014-09-06 22:10:14

回答

4

Java始終知道數組的每個元素究竟有多大,因爲Java只有兩種數組:基元數組或對象引用數組。

如果它是基元數組(int,long等),它是基元的大小;如果它是一個對象數組,那麼它就是對象(指針)引用的大小。

+1

呃,不完全...現在的JVM在堆大小小於〜28GB時使用壓縮指針(即4個字節)... – thkala 2014-09-06 21:49:32

+1

byte [],short []和char []是什麼意思? ? – 2014-09-06 21:53:33

+0

@thkala編輯爲(1)解決此問題和(2)更通用。感謝您的信息,但我不知道這一點。 – Oak 2014-09-06 21:54:24