On Mon, May 25, 2009 at 1:34 PM, Mark Murphy <[email protected]> wrote:
>> 2) What about local variable arrays? Do those go in the heap (short
>> lived, GC) or on the stack?
>
> The array is on the stack. If the array is a primitive array (int[]),
> that covers everything. If the array is of objects (Dog[]), the Dog
> instances are from the heap.
Actually, all array contents live on the heap, whether the contents
are primitives or objects, and a simple reference to the array will be
on the stack in a local variable. For example:
static void blort() {
int[] arr = { 1, 2, 3 };
// "here"
}
At "here," the stack frame for blort() will contain a single local
variable reference for arr, which will point at a freshly-allocated
array on the heap containing { 1, 2, 3 }.
-dan
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---