Re: array intialization for primitives




"Eric" <no@xxxxxxxxxx> wrote in message
news:ejvtl6$aa7$1@xxxxxxxxxxxxxxxxxxxxxxxx
Robert Klemme wrote:

Well, the stack is the stack and the heap is the heap. Keep in mind that
objects are always stored on the heap. Basically you only have variables
and primitive type values on the stack.

robert


That makes sense. So could a single object be on the stack? What about an
object array of constant size? ArrayList[10] or something like that. Or
when you say objects are always stored on the heap, do you really mean
always?

Usually people who ask whether an object is "on the stack" or "on the
heap" have a C background, and think that an object being on the stack or
being on the heap is meaningful with respect to the semantics of the
program. Usually people are more interested in these semantics than whether
the object is actually on the stack or on the heap. In other words, they're
asking the wrong question. I don't know if that's the case for you, but just
in case it is, you might want to rethink what it is you're really trying to
find out about Java's behaviour.

FWIW, some JVMs (I think IBM's JVM does this) perform analysis on the
program and make their own decisions about whether to put the object on the
stack or on the heap. The fact that the JVM is free to do either shows that
it has little effect on the actual behaviour exibited by the Java programs,
and is mainly done as a low level optimization technique.

- Oliver


.



Relevant Pages

  • Re: How does managed code work?
    ... Does it work the same way as the native stack with a frame pointer that is the head of a linked list of stack frames where each time we enter a function we create a new stack frame in which new variables are pushed and each time we exit a function the entire stack frame is popped? ... Can someone point me to a discussion of the managed heap? ... How does it prevent memory leaks that occur in COM when two objects reference each other and keep the others reference count nonzero? ... Because objects don't go out of scope, ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Groovy (war Re: [PROST]Re: CDC Plugin fuer Eclipse)
    ... Warum müsste man continuations erlauben Stackvariablen in den Heap zu verschieben? ... Ein activation record speichert die Parameter und lokalen Variablen der Funktion und eine Information, ... Da diese activation records klassischerweise auf einem Stack verwaltet werden, kann man hier Stackspace sparen - Endrekursion ist damit genauso effizient wie eine klassische Iteration mit einem Sprung. ...
    (de.comp.lang.java)
  • Re: Please Explain where will the struct be stored if it is declared inside the Class
    ... forget about structs for a second. ... can be stored either on the stack, or on the heap. ... First, think about the stack. ... A struct would act exactly the same as any of these decimals and ints. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Is MSDN wrong? or I made a mistake? about static member function
    ... the heap" or some such reference. ... shouldn't we have a uniform notation? ... You can tell a heap object from a stack object by ... the result of trying to build a compiler on a tiny computer by someone who wasn't a very ...
    (microsoft.public.vc.mfc)
  • Re: Stack, Heap, Mfc
    ... >> is put on the heap. ... >> decendant does this not mean that all memory will be on the heap because ... > stack or the heap. ... You first try to limit the recursion to an acceptable ...
    (microsoft.public.vc.mfc)