java 運行時內存分配 堆和棧區別
來自: http://blog.csdn.net//never_cxb/article/details/47976943
java 運行時 內存 分配
一個java進程可以包含多個線程
一個Java進程對應唯一一個JVM實例
一個JVM實例唯一對應一個堆
每一個線程有一個自己私有的棧
這兒也可以看出線程共享進程的堆, 但不共享棧
這篇文章里有一道 線程和進程面試題
堆
堆是被線程共享的
一個進程只有一個堆
堆中存放對象本身和數組本身
java 中, 數組(比如 int[]) 也是繼承Object對象, 不是繼承Object[]
棧
數據結構里面講了, 棧是先入后出
棧中存放的是對象的引用(聲明和引用對象是有先后順序的, 可能也是和棧有關)
堆和棧比較
棧的速度比堆快, 堆分配比棧靈活
一般來說, 可用的堆空間比棧大
靜態存儲區
這點好像有異議, java 到底有沒有靜態存儲區?
一般 帶有static
關鍵字的就存放在靜態存儲區
細節的就不要深究了
</div> 本文由用戶 meteor 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!