The differences between heap and stack are: 1. Difference in space allocation; 2. Difference in caching method; 3. Difference in data structure. The heap space is generally allocated and released by the programmer, and the stack space is automatically allocated and released by the operating system (compiler). The stack uses the first level cache and the heap uses the second level cache.
What is the difference between heap and stack
1. Difference in stack space allocation
Stack (operating system): automatically allocated and released by the operating system (compiler), storing function parameter values, local variable values, etc. It operates like a stack in a data structure.
Heap (operating system): Generally allocated and released by the programmer. If the programmer does not release it, it may be recycled by the OS when the program ends. The allocation method is similar to a linked list.
2. Differences in stack caching methods
The stack uses a first-level cache. They are usually in the storage space when they are called and are released immediately after the call is completed.
The heap is stored in the second-level cache, and the life cycle is determined by the garbage collection algorithm of the virtual machine (not that it can be recycled once it becomes an orphan object). Therefore, the speed of calling these objects is relatively low.
3. Differences in stack data structure
Heap (data structure): The heap can be regarded as a tree, such as: heap sort.
Stack (data structure): A first-in, last-out data structure.
The above is the detailed content of What are the differences between heap and stack. For more information, please follow other related articles on the PHP Chinese website!