Well, it's not so clear cut with the new VMs.
It will even put entire object into a register if it can.
class Thing {
short a;
short b;
}
You have the normal thread stack space which it uses when it detects
locality of reference.
Then you have the eden space which is a stack associated with a
thread.
Once this fills up it scans it for any surviving objects and copies
them to the first level 'heap' space. Which is a stack itself.
eg. A whole bunch of StringBuilder concats would all push onto this
stack. The final toString() result would survive.
I think there is a secondary space for objects which survive for a
long long time. But collection isn't run as often here.
On Jul 22, 9:03 am, Alexey Zinger <[email protected]> wrote:
> I was under the impression that primitives are heap managed when they're
> inside an object:
> public class Foo { public int bar; }
>
> And of course they're stack managed otherwise:
> public void func(int foo) { int bar; }
>
> Alexey
> 2001 Honda CBR600F4i (CCS)
> 1992 Kawasaki
> EX500http://azinger.blogspot.comhttp://bsheet.sourceforge.nethttp://wcollage.sourceforge.net
>
> ________________________________
> From: pramod nepal <[email protected]>
> To: [email protected]
> Sent: Monday, July 20, 2009 1:08:26 PM
> Subject: [The Java Posse] Re: Heap and Stack memory
>
> Stack and heap are both memories of RAM. Stack is a common place for
> most of memory storage. Both of these allocated memory inside jvm.
> Heap is a dedicated memory storage created only when we initialize
> using the new operator. They are easily freed or garbage collected
> when no more required. Objects created from classes are stored in
> heap. Eg int is stack managed and Integer is heap managed. Storage
> algorithm is different. Stack initialized may not properly manage
> contigious memory and may waste memory. Each heap initalized gets
> contigious memory. After object is freed memory re-organizes to claim
> original space and re constructs to leave no free space betwn two
> managed objects
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The
Java Posse" 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/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---