猛操女人-猛操网-咪咪爱毛片-米奇久久-91破处视频-91视频综合网

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

當(dāng)前位置:首頁  >  IT問答庫  >  Java基礎(chǔ)知識

JVM模型的介紹二

發(fā)布:Java基礎(chǔ)知識 2022-03-16 09:58

JVM模型的介紹二

推薦答案

          JVM模型的介紹二,接著上一篇我們繼續(xù)來分享,棧之本地方法棧。

  本地方法棧的作用和java虛擬機棧的作用是相類似的;區(qū)別在于java虛擬機棧是為java方法服務(wù)的,而本地方法棧是為native方法服務(wù)的;java虛擬機規(guī)范中對本地方法棧中的方法使用的語言、使用方式和數(shù)據(jù)結(jié)構(gòu)沒有強制規(guī)范

JavaEE

  堆

  堆是jvm內(nèi)存模型中內(nèi)存空間最大的一塊,java堆是被所有線程共享的一塊內(nèi)存區(qū)域,在虛擬機啟動時隨之創(chuàng)建,堆創(chuàng)建的唯一目的就是用來保存對象實例,幾乎所有new創(chuàng)建的對象實例都在這里分配內(nèi)存(隨著JIT 編譯器的發(fā)展與逃逸分析技術(shù)的逐漸成熟,棧上分配、標(biāo)量替換優(yōu)化技術(shù)將會導(dǎo)致一些微妙的變化發(fā)生,所有的對象都分配在堆上也漸漸變得不是那么“絕對”了)

  堆的大小可以通過-Xms-Xmn兩個參數(shù)來設(shè)置,-XmsJVM啟動時申請的最小內(nèi)存,默認為操作系統(tǒng)物理內(nèi)存的1/64但小于1G-XmxJVM可申請的最大內(nèi)存,默認為物理內(nèi)存的1/4但小于1G,默認當(dāng)空余堆內(nèi)存小于40%時,JVM會增大Heap-Xmx指定的大小,可通過-XX:MinHeapFreeRation=來指定這個比列;當(dāng)空余堆內(nèi)存大于70%時,JVM會減小heap的大小到-Xms指定的大小,可通過XX:MaxHeapFreeRation=來指定這個比列,對于運行系統(tǒng),為避免在運行時頻繁調(diào)整Heap的大小,通常-Xms-Xmx的值設(shè)成一樣。

  堆也是垃圾收集管理的主要區(qū)域,通常所說的垃圾回收主要是回收堆中的垃圾對象,因此堆也被稱為GC

  從垃圾回收的角度上來看,由于現(xiàn)在垃圾收集大多是采用分代收集算法,所以java堆還可以細分為:新生代和老年代;

  新生代:程序新創(chuàng)建的對象都是從新生代分配內(nèi)存,新生代由Eden Space和兩塊相同大小的Survivor Space(通常又稱S0S1FromTo)構(gòu)成,可通過-Xmn參數(shù)來指定新生代的大小,也可以通過-XX:SurvivorRation來調(diào)整Eden SpaceSurvivorSpace的大小。

  老年代:用于存放經(jīng)過多次新生代GC仍然存活的對象(默認是15),例如緩存對象,新建的對象也有可能直接進入老年代,主要有兩種情況:

  1.大對象,可通過啟動參數(shù)設(shè)置-XX:PretenureSizeThreshold=1024(單位為字節(jié),默認為0)來代表超過多大時就不在新生代分配,而是直接在老年代分配。

  2.大的數(shù)組對象,且數(shù)組中無引用外部對象。老年代所占的內(nèi)存大小為-Xmx對應(yīng)的值減去-Xmn對應(yīng)的值。

  java堆也會出現(xiàn)內(nèi)存溢出的情況:如果在堆中沒有內(nèi)存完成實例分配,并且堆也無法再擴展時,將會拋出OutOfMemoryError 異常

  方法區(qū)

  方法區(qū)用于存放已被虛擬機加載的類信息、常量、類變量等數(shù)據(jù),它也是所有線程共享的一塊內(nèi)存區(qū)域,通常叫它為no-heap(用于與堆區(qū)分)或者永生代

  永生代也會被GC回收,主要針對常量池回收和類型卸載(反射生成大量的臨時class等信息)

  常量池用于保存編譯器生成的各種字節(jié)碼和符號引用,具有一定的動態(tài)性,里面可以保存編譯器生成的常量,運行期間的常量也是可以添加到常量池中的,比如Stringintern()方法;

  方法區(qū)也是會出現(xiàn)內(nèi)存溢出的情況的:當(dāng)方法區(qū)滿時,無法再分配內(nèi)存空間,就會拋出內(nèi)存溢出的異常

  java8中已經(jīng)沒有方法區(qū)了,取而代之的是元空間metaspace

  以上就是小編介紹的"Java培訓(xùn)班分享的內(nèi)容,希望對大家有幫助,如有疑問還可以點擊進入Java視頻教程進行學(xué)習(xí)。

最新問答資訊

01 unity用什么編程語言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語言 可以
5062 人關(guān)注

04 c語言難學(xué)嗎?c語言學(xué)好要多久?

語言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計要多久?報速成班靠譜嗎?

平面 設(shè)計 學(xué)習(xí) 時間
4238 人關(guān)注

相關(guān)問題

Java培訓(xùn)班的課程一般都學(xué)習(xí)什么內(nèi)容

首先是Java技術(shù)的核心和基礎(chǔ)JavaSE,這一階段會接觸到Java基礎(chǔ)語...

學(xué)習(xí)Java有哪些技巧嗎

java作為最經(jīng)典的編程語言之一受到大家的喜愛,不止你我,很多人...

java程序員常用到的技術(shù)有哪些

操作系統(tǒng)、計算機網(wǎng)絡(luò)這些基礎(chǔ)知識,工作之后基本都忘的差不多了...

int和integer有哪些區(qū)別?

int 和 Integer 的基本區(qū)別有如下?點: int 是基本數(shù)據(jù)類型,...

JVM模型的介紹二

JVM模型的介紹二,接著上一篇我們繼續(xù)來分享,棧之本地方法棧。 ...

JVM模型的介紹一

Java培訓(xùn)班教程系列分享JVM模型的介紹一,Java內(nèi)存分配:JVM定義...

測一測
你知道多少IT梗

主站蜘蛛池模板: 欧美性视屏 | 狠狠色噜噜狠狠狠合久 | 精品国产影院 | 青草视频在线观看视频 | 污视频网站在线观看免费 | 日本免费一区二区三区在线看 | 国产视频资源在线观看 | 手机看片一区二区 | 亚洲国产精品久久久天堂 | 成人黄色毛片 | xxx欧美hd | 二区三区不卡不卡视频 | 在线观看久草 | 日韩精品一区二区三区国语自制 | www污视频 | 亚洲激情在线播放 | 日本三级免费片 | 狠狠干狠狠色 | 一本大道无香蕉综合在线 | 国产100页| 在线观看中文字幕一区 | 五月香婷| 日韩欧美亚洲国产一区二区三区 | 国产精品免费视频一区二区三区 | 久久午夜鲁丝片午夜精品 | 日韩成人免费观看 | 成人涩涩屋福利视频 | 亚洲日日做天天做日日谢 | 波多野结衣中文字幕一区二区三区 | 456亚洲人成高清在线 | 国产人成精品综合欧美成人 | 日日干狠狠 | 国产欧美大片 | 欧美人禽 | 黄色网址免费大全 | 91国自产精品中文字幕亚洲 | 欧美性大战久久久久久久蜜桃 | 一个人看的www日本视频 | 一个人在线免费观看www视频 | 成人黄色一级片 | 日韩一级视频免费观看 |