What are the differences between a Stack memory and a Heap memory?

  • Stack memory is an array of memory, where the data is stored and removed (when no longer in use) in a Last-In-First-Out (LIFO) model.
  • Value Types (bool, byte, char, decimal, double, enum, float, int, long, sbyte, short, struct, uint, ulong, ushort) are stored in Stack memory.
  • Method calls are generally executed over a Stack and all the variables (of Value Types) are allocated inside the Stack. Once the control goes out of the Method, all the variable memory allocations are removed from the Top in LIFO order.
  • The values are stored and accessed directly, and is significantly faster than a Heap.
  • Heap memory is an area inside the memory, where the data is stored in the form of chunks of spaces.
  • Data can be stored and removed in any order, but the access is significantly slower.
  • Reference Types such as Strings, Lists, Collections and Class objects are stored in Heap memory
  • The contents of Heap Memory are managed by the Garbage Collector.
  • Stack memory is an array of memory, where the data is stored and removed (when no longer in use) in a Last-In-First-Out (LIFO) model.
  • Value Types (bool, byte, char, decimal, double, enum, float, int, long, sbyte, short, struct, uint, ulong, ushort) are stored in Stack memory.
  • Method calls are generally executed over a Stack and all the variables (of Value Types) are allocated inside the Stack. Once the control goes out of the Method, all the variable memory allocations are removed from the Top in LIFO order.
  • The values are stored and accessed directly, and is significantly faster than a Heap.
  • Heap memory is an area inside the memory, where the data is stored in the form of chunks of spaces.
  • Data can be stored and removed in any order, but the access is significantly slower.
  • Reference Types such as Strings, Lists, Collections and Class objects are stored in Heap memory
  • The contents of Heap Memory are managed by the Garbage Collector.

Buy Me A Coffee

Found this article helpful? Please consider supporting!

Ram
Ram

I'm a full-stack developer and a software enthusiast who likes to play around with cloud and tech stack out of curiosity. You can connect with me on Medium, Twitter or LinkedIn.

Leave a Reply

Your email address will not be published. Required fields are marked *