[Logo]
Forums Register Login
Memory allocation in Java
Hi all,
I am new to Java Tech., can anybody explain me how stack and heap works in Java for memory allocation.

Thanx in advance
Hi Pravin,

The heap stores all java objects whereas the stack holds local variables.

Best regards,
Simply put...
  • Primitive types (short, char, byte, int, long, float, double) are allocated in the Stack.
  • Object are allocated in the heap, while their references are allocated in the Stack.
  • Objects in the heap are subject to Garbage Collection while primitives in the Stack are not.


  • For more general info how Stack and Heap memory work see this.
    [ January 27, 2005: Message edited by: Vicken Karaoghlanian ]
     

    Originally posted by Vicken Karaoghlanian:
    Simply put...

  • [list] Primitive types (short, char, byte, int, long, float, double) are allocated in the Stack.
  • Object are allocated in the heap, while their references are allocated in the Stack.
  • [ January 27, 2005: Message edited by: Vicken Karaoghlanian ]


  • This is not entirely true. If the primitive types or object references are LOCAL variables, then they ARE allocated on the stack. However, if they are instance or class variables instead, they are allocated in the heap. (Of course, this was mentioned above, but I just wanted to reiterate.)

    Layne

    This thread has been viewed 645 times.

    All times above are in ranch (not your local) time.
    The current ranch time is
    Sep 21, 2018 13:52:32.