Question - Stack Vs Heap Memory
Answer - Main difference between heap and stack is that stack memory is used to store local variables and function call, while heap memory is used to store objects in Java. No matter, where object is created in code e.g. as member variable, local variable or class variable, they are always created inside heap space in Java.
In a multi-threaded application, each thread will have its own stack, but, all the different threads will share the heap. Because the different threads share the heap in a multi-threaded application, this also means that there has to be some coordination between the threads so that they don’t try to access and manipulate the same piece(s) of memory in the heap at the same time.
Question - Can an object be stored on the stack instead of the heap?
Answer - Yes, an object can be stored on the stack. If you create an object inside a function without
using the “new” operator then this will create and store the object on the stack, and not on the heap.