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 -~----------~----~----~----~------~----~------~--~---