Dan, thanks for clearing that up.  It's always nice to have the guy
who wrote the VM step in and steer us lowly developers in the right
direction :)

I do have a logical question following your example, though:

If a blort can snort,
and a snort is a fort,
are all blorts forts?

On Jun 1, 7:34 pm, Dan Bornstein <danf...@android.com> wrote:
> On Mon, May 25, 2009 at 1:34 PM, Mark Murphy <mmur...@commonsware.com> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to