堆、棧、方法區

轉載;http://blog.csdn.net/zly921112/article/details/61192747


java的jvm的內存分為三塊:


:

實例對象和數組對象。被所有線程共享。

分為新生代(1 Eden +2 survivor)和老年代(old )

為了垃圾回收,根據對象存活期的長短,分為新生代和老年代。垃圾回收時分別采用復制算法(所以有eden區和兩個survivor區)、標記整理和標記清除算法

棧:

基礎數據類型和自定義對象的引用。每個線程有一個棧區,棧中數據私有,其他棧不可訪問

方法區:

java8之前,方法區也叫(永久代)靜態區,包含整個程序中的唯一變量,如class、? ?static等等。被所有線程共享。運行時,常量池分配在這。

首先理清方法區的實現有永久代和元空間。jdk1.8前方法區的實現是永久代;jdk1.8后方法區的實現是元空間,使用的是本地內存。存放類的屬性、靜態變量、常量、方法等,字符串常量池還是存放在堆中,也僅僅是字符串常量的實例化對象在常量池中。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Tips 只要類持有對外部實力對象的引用, 垃圾回收機制就不會回收該對象 JVM中 堆和棧對比 存什么 棧內存 存...
    我不是死胖子閱讀 700評論 0 0
  • 1.一些概念 1.1.數據類型 Java虛擬機中,數據類型可以分為兩類:基本類型和引用類型。基本類型的變量保存原始...
    落落落落大大方方閱讀 4,572評論 4 86
  • JVM架構 當一個程序啟動之前,它的class會被類裝載器裝入方法區(Permanent區),執行引擎讀取方法區的...
    cocohaifang閱讀 1,699評論 0 7
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,366評論 11 349
  • 原文閱讀 前言 這段時間懈怠了,罪過! 最近看到有同事也開始用上了微信公眾號寫博客了,挺好的~給他們點贊,這博客我...
    碼農戲碼閱讀 6,018評論 2 31