亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JVM運(yùn)行時數(shù)據(jù)區(qū)劃分原理詳解

 更新時間:2020年05月11日 10:54:34   作者:噠噠Da  
這篇文章主要介紹了JVM運(yùn)行時數(shù)據(jù)區(qū)劃分原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Java內(nèi)存空間

內(nèi)存是非常重要的系統(tǒng)資源,是硬盤和cpu的中間倉庫及橋梁,承載著操作系統(tǒng)和應(yīng)用程序的實(shí)時運(yùn)行。JVM內(nèi)存布局規(guī)定了JAVA在運(yùn)行過程中內(nèi)存申請、分配、管理的策略,保證了JVM的高效穩(wěn)定運(yùn)行。不同的jvm對于內(nèi)存的劃分方式和管理機(jī)制存在著部分差異(對于Hotspot主要指方法區(qū))

(圖源阿里)JDK8的元數(shù)據(jù)區(qū)+JIT編譯產(chǎn)物 就是JDK8以前的方法區(qū)

JavaAPI中的Runtime

public class Runtime
extends Object

Every Java application has a single instance of class Runtime that allows the application to interface with theenvironment in which the application is running. The current runtime can be obtained from the getRuntime method.

每個Java應(yīng)用程序都有一個Runtime類的實(shí)例,該實(shí)例允許該應(yīng)用程序與運(yùn)行該應(yīng)用程序的環(huán)境進(jìn)行交互。 當(dāng)前運(yùn)行時可以從getRuntime方法獲得。Java內(nèi)存分區(qū)介紹

java虛擬機(jī)定了了若干種程序運(yùn)行期間會使用到的運(yùn)行時數(shù)據(jù)區(qū),其中有一些會隨著虛擬機(jī)啟動而創(chuàng)建,隨著虛擬機(jī)退出而銷毀。另外一些則是與縣城一一對應(yīng)的,這些與線程對應(yīng)的數(shù)據(jù)區(qū)域會隨著線程開始和結(jié)束而創(chuàng)建和銷毀。

如圖,灰色的區(qū)域?yàn)閱为?dú)線程私有的,紅色的為多個線程共享的,即

Java

中的線程與進(jìn)程

1.每個線程:獨(dú)立包括程序計(jì)數(shù)器、棧、本地棧

2.線程間共享:堆、堆外內(nèi)存(方法區(qū)、永久代或元空間、代碼緩存)

圖片說明:嚴(yán)格對照J(rèn)ava內(nèi)存分區(qū)

PC即程序計(jì)數(shù)器

VMS即虛擬機(jī)棧

NMS即本地方法棧

一般來說,jvm優(yōu)化95%是優(yōu)化堆區(qū),5%優(yōu)化的是方法區(qū),至于棧區(qū)無非出入棧操作優(yōu)化較少Java線程

1.線程是一個程序里的運(yùn)行單元,JVM允許一個程序有多個線程并行的執(zhí)行;

2.在HotSpot JVM,每個線程都與操作系統(tǒng)的本地線程直接映射。

  當(dāng)一個java線程準(zhǔn)備好執(zhí)行以后,此時一個操作系統(tǒng)的本地線程也同時創(chuàng)建。java線程執(zhí)行終止后。本地線程也會回收。

3.操作系統(tǒng)負(fù)責(zé)所有線程的安排調(diào)度到任何一個可用的CPU上。一旦本地線程初始化成功,它就會調(diào)用java線程中的run()方法.

JVM系統(tǒng)線程分類

如果你使用jconsole或者任何一個調(diào)試工具,都能看到在后臺有許多線程在運(yùn)行。這些后臺線程不包括調(diào)用main方法的main線程以及所有這個main線程自己創(chuàng)建的線程;

這些主要的后臺系統(tǒng)線程在HotSpot JVM里主要是以下幾個:

1.虛擬機(jī)線程:這種線程的操作時需要JVM達(dá)到安全點(diǎn)才會出現(xiàn)。這些操作必須在不同的線程中發(fā)生的原因是他們都需要JVM達(dá)到安全點(diǎn),這樣堆才不會變化。這種線程的執(zhí)行包括“stop-the-world”的垃圾收集,線程棧收集,線程掛起以及偏向鎖撤銷

2.周期任務(wù)線程:這種線程是時間周期事件的提現(xiàn)(比如中斷),他們一般用于周期性操作的調(diào)度執(zhí)行。

3.GC線程:這種線程對于JVM里不同種類的垃圾收集行為提供了支持

4.編譯線程:這種線程在運(yùn)行時會降字節(jié)碼編譯成本地代碼

5.信號調(diào)度線程:這種線程接收信號并發(fā)送給JVM,在它內(nèi)部通過調(diào)用適當(dāng)?shù)姆椒ㄟM(jìn)行處理。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot+Quartz實(shí)現(xiàn)動態(tài)定時任務(wù)

    SpringBoot+Quartz實(shí)現(xiàn)動態(tài)定時任務(wù)

    這篇文章主要為大家詳細(xì)介紹了springBoot+Quartz實(shí)現(xiàn)動態(tài)定時任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • SpringBoot使用Spring-Data-Jpa實(shí)現(xiàn)CRUD操作

    SpringBoot使用Spring-Data-Jpa實(shí)現(xiàn)CRUD操作

    這篇文章主要為大家詳細(xì)介紹了SpringBoot使用Spring-Data-Jpa實(shí)現(xiàn)CRUD操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Spring Boot項(xiàng)目搭建的兩種方式

    Spring Boot項(xiàng)目搭建的兩種方式

    springboot簡單快捷方便的優(yōu)點(diǎn)深受用戶喜愛,springboot開發(fā)環(huán)境搭建過程是每個開發(fā)者必須要做的工作,今天小編寫的一篇教程關(guān)于Spring Boot項(xiàng)目搭建方法,通過兩種方式給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06
  • Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版

    Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版

    這篇文章主要介紹了Docker?快速部署Springboot項(xiàng)目超詳細(xì)最新版的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Spring Data JPA 整合QueryDSL的使用案例

    Spring Data JPA 整合QueryDSL的使用案例

    QueryDSL 是一個用于構(gòu)建類型安全的 SQL 查詢的 Java 庫,它的主要目標(biāo)是簡化在 Java 中構(gòu)建和執(zhí)行 SQL 查詢的過程,同時提供類型安全性和更好的編碼體驗(yàn),對Spring Data JPA 整合QueryDSL使用案例感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • Java HttpServletResponse響應(yīng)實(shí)現(xiàn)過程詳解

    Java HttpServletResponse響應(yīng)實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了Java HttpServletResponse響應(yīng)實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Java  隊(duì)列 Queue 用法實(shí)例詳解

    Java 隊(duì)列 Queue 用法實(shí)例詳解

    本文實(shí)例講述了Java內(nèi)置隊(duì)列類Queue用法,分享給大家供大家參考
    2017-04-04
  • 基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置詳解

    基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置詳解

    這篇文章主要給大家介紹了基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • SpringBoot+Mybatis使用Enum枚舉類型總是報(bào)錯No enum constant XX問題

    SpringBoot+Mybatis使用Enum枚舉類型總是報(bào)錯No enum constant&n

    這篇文章主要介紹了SpringBoot+Mybatis使用Enum枚舉類型總是報(bào)錯No enum constant XX問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • RocketMQ中消費(fèi)者概念和消費(fèi)流程詳解

    RocketMQ中消費(fèi)者概念和消費(fèi)流程詳解

    這篇文章主要介紹了RocketMQ中消費(fèi)者概念和消費(fèi)流程詳解,RocketMQ是一款高性能、高可靠性的分布式消息中間件,消費(fèi)者是RocketMQ中的重要組成部分,消費(fèi)者負(fù)責(zé)從消息隊(duì)列中獲取消息并進(jìn)行處理,需要的朋友可以參考下
    2023-10-10

最新評論