Stack&&Heap
关于Stack和Heap的区别和概念:
1.Stack有序(FIFO)Heap无序;
2.Stack比Heap访问速度快,因为each byte in the stack tends to be reused very frequently which means it tends to be mapped to the processor's cache, making it very fast.
3.每个线程都有其特定的Satck,而一个application只有一个Heap。
4.Stack的大小取决于线程开始的时候,而Heap的大小取决于应用启动的时候,而Heap的大小不是固定的。
5.Heap和Stack之间是相互独立的。
![](http://img2.ph.126.net/v5TMfTYEGuB0XY3RDDvEqw==/6630215644187115668.png)
6.在同一个进程中,有两块不同的内存区域。以Java来说,栈用来存储原始值和指向对象的引用类型,但对象本身总是在堆中被创建。堆和栈的一个重要区别是,堆内存被所有线程共享,但每个线程有自己的栈。