Re: array intialization for primitives
"Eric" <no@thanks.com> wrote in message
news:ejvtl6$aa7$1@geraldo.cc.utexas.edu...
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