成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解JVM內存模型使用

開發 后端
本文向大家簡單描述一下JVM內存模型,主要包括棧和堆,Java棧是與每一個線程關聯的,JVM在創建每一個線程的時候,會分配一定的棧空間給線程,而Java中堆是由所有的線程共享的一塊內存區域。

你對JVM內存模型是否熟悉,這里和大家分享一下,主要包括棧和堆兩部分內容,Java棧是與每一個線程關聯的,JVM在創建每一個線程的時候,會分配一定的棧空間給線程。它主要用來存儲線程執行過程中的局部變量,方法的返回值,以及方法調用上下文。Java中堆是由所有的線程共享的一塊內存區域,堆用來保存各種JAVA對象,比如數組,線程對象等。

JVM內存模型

  1.1Java棧

  Java棧是與每一個線程關聯的,JVM在創建每一個線程的時候,會分配一定的棧空間給線程。它主要用來存儲線程執行過程中的局部變量,方法的返回值,以及方法調用上下文。棧空間隨著線程的終止而釋放。StackOverflowError:如果在線程執行的過程中,棧空間不夠用,那么JVM就會拋出此異常,這種情況一般是死遞歸造成的。

  1.2堆

  Java中堆是由所有的線程共享的一塊內存區域,堆用來保存各種JAVA對象,比如數組,線程對象等。

  1.2.1Generation

  JVM內存模型中JVM堆一般又可以分為以下三部分:

  ◆Perm

  Perm代主要保存class,method,filed對象,這部門的空間一般不會溢出,除非一次性加載了很多的類,不過在涉及到熱部署的應用服務器的時候,有時候會遇到java.lang.OutOfMemoryError:PermGenspace的錯誤,造成這個錯誤的很大原因就有可能是每次都重新部署,但是重新部署后,類的class沒有被卸載掉,這樣就造成了大量的class對象保存在了perm中,這種情況下,一般重新啟動應用服務器可以解決問題。

  ◆Tenured

  Tenured區主要保存生命周期長的對象,一般是一些老的對象,當一些對象在Young復制轉移一定的次數以后,對象就會被轉移到Tenured區,一般如果系統中用了application級別的緩存,緩存中的對象往往會被轉移到這一區間。

  ◆Young

  Young區被劃分為三部分,Eden區和兩個大小嚴格相同的Survivor區,其中Survivor區間中,某一時刻只有其中一個是被使用的,另外一個留做垃圾收集時復制對象用,在Young區間變滿的時候,minorGC就會將存活的對象移到空閑的Survivor區間中,根據JVM的策略,在經過幾次垃圾收集后,任然存活于Survivor的對象將被移動到Tenured區間。

  1.2.2SizingtheGenerations參考資料:

  JVM內存模型中提供了相應的參數來對內存大小進行配置。正如上面描述,JVM中堆被分為了3個大的區間,同時JVM也提供了一些選項對Young,Tenured的大小進行控制。

  ◆TotalHeap

  -Xms:指定了JVM初始啟動以后初始化內存

  -Xmx:指定JVM堆得***內存,在JVM啟動以后,會分配-Xmx參數指定大小的內存給JVM,但是不一定全部使用,JVM會根據-Xms參數來調節真正用于JVM的內存參考資料:

  -Xmx-Xms之差就是三個Virtual空間的大小

  ◆YoungGeneration

  -XX:NewRatio=8意味著tenured和young的比值8:1,這樣eden+2*survivor=1/9

  堆內存

  -XX:SurvivorRatio=32意味著eden和一個survivor的比值是32:1,這樣一個Survivor就占Young區的1/34.

  -Xmn參數設置了年輕代的大小

  ◆PermGeneration

  -XX:PermSize=16M-XX:MaxPermSize=64M

  ThreadStack

   -XX:Xss=128K

  1.3堆棧分離的好處

  其它的先不說了,就來說說面向對象的設計吧,當然除了面向對象的設計帶來的維護性,復用性和擴展性方面的好處外,我們看看面向對象如何巧妙的利用了堆棧分離。如果從JAVA內存模型的角度去理解面向對象的設計,我們就會發現對象它***的表示了堆和棧,對象的數據放在堆中,而我們編寫的那些方法一般都是運行在棧中,因此面向對象的設計是一種非常***的設計方式,它***的統一了數據存儲和運行。

【編輯推薦】

  1. JVM內存模型及垃圾收集策略解析
  2. 解決JVM***內存設置問題
  3. 調用weblogic設置jvmheap大小
  4. 詳解Tomcat配置JVM參數步驟
  5. 深入學習JVM內存設置原理和調優

 

責任編輯:佚名 來源: hi.baidu.com
相關推薦

2018-11-01 10:34:37

JVM內存配置

2022-02-04 22:05:19

JVM程序內存模型

2010-09-27 13:48:41

JVM內存結構

2010-09-26 13:23:13

JVM內存管理機制

2023-11-05 12:05:35

JVM內存

2009-06-24 16:50:11

Java內存模型

2025-06-06 06:25:07

2018-07-04 14:43:55

對象模型內存結構內存模型

2010-12-10 15:40:58

JVM內存管理

2019-05-06 08:37:14

JVMLinux內存

2023-06-07 08:08:43

JVM內存模型

2010-02-22 08:58:35

JVM內存模型垃圾收集

2024-07-26 10:23:52

2025-03-04 10:45:19

JVM內存模型Java

2019-09-02 14:53:53

JVM內存布局GC

2010-04-27 09:17:23

內存屏障JVM

2017-09-20 08:48:09

JVM內存結構

2009-06-04 16:27:39

Java虛擬機JVMGC

2009-07-09 15:49:50

JVM內存

2021-09-08 17:42:45

JVM內存模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产专区在线 | 国产中文字幕在线观看 | 久久久久国 | 国产精品免费看 | 最新黄色毛片 | 天堂资源视频 | 欧美精品久久 | 91久久久久久久久久久久久 | 亚洲成人在线免费 | 国产精品久久久久久吹潮 | 国产资源网 | 欧日韩在线观看 | 日韩欧美精品在线 | 国产精品九九 | 天天综合久久 | 色综合久久88色综合天天 | 天天干天天爱天天爽 | 久久精品色欧美aⅴ一区二区 | 欧美国产日韩一区二区三区 | 欧美日韩成人 | 成人在线免费视频 | 国产精品一区二区视频 | 亚洲精品成人在线 | 91色视频在线观看 | 99精品欧美一区二区三区综合在线 | 国产成人影院 | 久草免费电影 | 亚洲五码久久 | 成人午夜性成交 | h视频免费在线观看 | 日本免费黄色 | 超碰人人人 | 久久蜜桃av一区二区天堂 | av影音资源 | 精品一区二区三区四区五区 | 久久中文字幕一区 | 在线观看成年视频 | 华丽的挑战在线观看 | 国产成人高清在线观看 | 久久久精品一区 | 一区二区高清不卡 |