亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    java中棧內(nèi)存和堆內(nèi)存有什么區(qū)別

    java中棧內(nèi)存和堆內(nèi)存有什么區(qū)別

    棧內(nèi)存和堆內(nèi)存的區(qū)別:

    1、棧內(nèi)存用來存放基本類型的變量和引用變量,堆內(nèi)存用來存儲java中的對象,無論是成員變量,局部變量,還是類變量,他們指向的對象都存儲在堆內(nèi)存中。

    (視頻教程推薦:java視頻)

    2、棧內(nèi)存歸屬于單個線程,每個線程都會有一個棧內(nèi)存,其存儲的變量只能在其所屬的線程中可見,即棧內(nèi)存可以理解成線程的私有內(nèi)存;堆內(nèi)存中的對象對所有線程可見。堆內(nèi)存中的對象可以被所有線程訪問。

    3、如果棧內(nèi)存沒有可用的空間存儲方法調(diào)用和局部變量,JVM會拋出java.lang.stackoverflowerror 錯誤;如果是堆內(nèi)存內(nèi)有可用的空間存儲生成的對象,jvm會拋出java.lang.outofmemoryerror錯誤。

    3、棧的內(nèi)存要遠(yuǎn)遠(yuǎn)小于堆內(nèi)存,如果你使用遞歸的話,那么你的棧會很快充滿。-Xss設(shè)置每個線程堆棧內(nèi)存的大小 -Xms可以設(shè)置堆內(nèi)存開始時的大小。

    總結(jié):

    JVM 中堆和棧屬于不同的內(nèi)存區(qū)域,使用目的也不同。棧常用于保存方法幀和局部變量,而對象總是在堆上分配。棧通常都比堆小,也不會在多個線程之間共享,而堆被整個 JVM 的所有線程共享。

    推薦教程:java開發(fā)入門

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號