堆和棧的區(qū)別是什么?

棧是在編譯的時候確定的,堆是在運行的時候確定的。
棧的大小在編譯的時候已經(jīng)定好了,堆可能是一個動態(tài)變化的概念,主要取決于運行計算時的數(shù)據(jù),所以棧的速度快,堆的速度慢。根據(jù)不同的需求選擇使用堆還是使用棧。
訪問權限:
棧:函數(shù)調(diào)用里面的數(shù)據(jù)都在棧上,不同函數(shù)間的棧數(shù)據(jù)不能共享。
堆:在application內(nèi),所有的線程都可以訪問堆上的數(shù)據(jù)
標簽: