1. 程式人生 > >jvm虛擬機器記憶體詳解

jvm虛擬機器記憶體詳解

基礎資料型別:boolean、char、byte、double、float、int、long、short

引用型別:類、介面、陣列

早都應該寫了!!!

我們平時口頭上說的就是 堆、棧、方法區,下面先解釋一下這三個:

1、棧:

這個棧就是我們平時說的棧,全名是:虛擬機器棧

  》1、棧中只儲存基礎資料型別資料的物件和自定義物件的引用(地址),而例項物件都儲存在堆中。

  》2、一條執行緒包含一個棧,所以棧是私有的,所有的資料(基礎型別和物件引用)都不能被其他棧訪問。

  》3、生命週期和執行緒一致

2、堆:

  》1:、存放所有的例項物件,以及陣列物件。

  》2、在整個jvm中只有一個堆,被所有的執行緒共享。

3、方法區:

  》1、方法區也叫靜態區,存放了要載入的類的資訊,包含class、static變數、常量等

  》2、方法區中包含的,都是整個jvm中唯一的元素,如final定義的

  》3、執行時候的常量池也存放在方法區中

以上就是我們經常說的jvm記憶體,而實際上還有兩個:本地方法棧和程式計數器

4、本地方法棧:

  》用於支援native方法的執行, 儲存了native方法的執行狀態

    native方法:與硬體互動的方法

5、程式計數器:

  》通過計數器的值,來獲取下一條指令的地址

  》如果程式在執行java方法的時候,計數器記錄的是正在執行的虛擬機器位元組碼指令地址,

    如果執行的是native方法,值是undefined

並且,由於計數器的記憶體不會隨著程式的執行而改變,因此計數器是記憶體區唯一不會發生記憶體洩漏的(outofmemory)

相關推薦

jvm虛擬機器記憶體

基礎資料型別:boolean、char、byte、double、float、int、long、short 引用型別:類、介面、陣列 早都應該寫了!!! 我們平時口頭上說的就是 堆、棧、方法區,下面先解釋一下這三個: 1、棧: 這個棧就是我們平時說的棧,全名是:虛擬機

JVM 虛擬機器

棧幀 棧幀 (Stack Frame) 是用於支援虛擬機器進行方法呼叫和方法執行的資料結構,它是虛擬機器執行時資料區中的虛擬機器棧 (Virtual  Machine  Stack)的棧元素 。棧幀儲存了方法的區域性變量表、運算元棧、動態連線和方法返回地址等資訊。每一個方能從

java虛擬機器結構JVM

廢話不多說,先直接上個圖: 上圖為JVM整體組成結構,有幾個模組組成: 1.class檔案生成模組: 通過jdk自帶的javac編譯命令生成 中間過程就是javac編譯程式內部處理的過程,核心就是針對原始碼詞法和語法的分析。 2.類載入器子系統模組: JVM執行時

JVM(二)Java虛擬機器組成

導讀:詳細而深入的總結,是對知識“豁然開朗”之後的“刻骨銘心”,想忘記都難。 Java虛擬機器(Java Virtual Machine)下文簡稱jvm,上一篇我們對jvm有了大體的認識,進入本文之後我們將具體而詳細的介紹jvm的方方面面,而本文主要講的是jvm的組成,瞭解了它,就揭開了jvm的神祕面紗。

JVM虛擬機器記憶體簡析(一)

1.程式計數器 1.1 程式計數器在記憶體中佔用較小的一塊記憶體,主要作用是記錄當前執行緒執行的程式的位元組碼的地址。 1.2 各個執行緒的程式計數器是獨立儲存互不干涉的。 1.3 如果執行緒執行的是一個Java方法,程式計數器指向虛擬機器中該程式位元組碼的地址; 如果執行的

Java虛擬機器結構

1   JVM整體架構 2   JVM類載入器 3   JVM記憶體結構 4   JVM執行引擎 1  JVM整體架構 •   JVM(虛擬機器):指以軟體的方式模擬具有完整硬體系統功能、執行在一個完全隔離環境中的完整計算機系統 ,是物理機的軟體實   現。常用的虛

JVM虛擬機器記憶體模型

java虛擬機器執行時記憶體主要包括:程式計數器、虛擬機器棧、本地方法棧、java堆、方法區(包含執行時方法區)以及直接記憶體幾個部分。 下面分別介紹幾個部分:如下圖所示(圖片源自網路) 1.  程式計數器(Program Counter Register) ,很小的一塊

調整JVM虛擬機器記憶體大小

   隨著應用程式處理需求的提升,我們對JAVA虛擬機器的記憶體可能會有更高的要求,那麼為了提升程式的處理能力,可以考慮在硬體支援的情況下適當擴大JAVA虛擬機器的預設記憶體大小,下面介紹windows環境和liunx環境如何調整虛擬機器記憶體的方法。 一、windows

安裝Linux虛擬機器步驟

虛擬機器 虛擬機器(Virtual Machine)指通過軟體模擬的具有完整硬體系統功能的、執行在一個完全隔離環境中的完整計算機系統。 準備: 虛擬機器的iso映象 實體記憶體

Java虛擬機器組成

  導讀:詳細而深入的總結,是對知識“豁然開朗”之後的“刻骨銘心”,想忘記都難。   Java虛擬機器(Java Virtual Machine)下文簡稱jvm,上一篇我們對jvm有了大體的認識,進入本文之後我們將具體而詳細的介紹jvm的方方面面,而本文主要講的是jvm的組成,瞭解了它,就揭開了jvm的

虛擬機器棧】虛擬機器

前言Java 虛擬機器的記憶體模型分為兩部分:一部分是執行緒共享的,包括 Java 堆和方法區;另一部分是執行緒私有的,包括虛擬機器棧和本地方法棧,以及程式計數器這一小部分記憶體。JVM 是基於棧的。但是這個“棧” 具體指的是什麼?難道就是虛擬機器棧?想要回答這個問題我們先要

CentOS 6.8 虛擬機器安裝

第一步:安裝 VMware   官方網站:www.vmware.com VMware 是一個虛擬 PC 的軟體,可以在現有的作業系統上虛擬出一個新的硬體環境,相當於模擬出一臺新的 PC,以此來實現在一臺機器上真正同時執行兩個獨立的作業系統。 安裝過程全部預設下一步下一步就OK。 安裝完成之後,開啟 VM

JVM】Java記憶體:堆和棧的區別

最近在研究多執行緒的東西,看到了Java記憶體的相關知識。又回到了堆和棧這個話題,在很早之前就研究過,只知道這兩種資料結構一個是先進後出,一個是先進先出,借這個機會,再細緻研究一下,對比二者的不同: Java把記憶體劃分為兩種:一種是棧記憶體,一種是堆記憶體。

JVM虛擬機器記憶體模型與高效併發

Java記憶體模型,即Java Memory Model,簡稱 JMM ,它是一種抽象的概念,或者是一種協議,用來解決在併發程式設計過程中記憶體訪問的問題,同時又可以相容不同的硬體和作業系統,JMM的原理與硬體一致性的原理類似。在硬體一致性的實現中,每個CPU會存在一個快取記

Elasticsearch Java虛擬機器配置

ElasticSearch是一個基於Lucene構建的開源,分散式,RESTful搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。支援通過HTTP使用JSON進行資料索引。    我們建立一個網站或應用程式,並要新增搜尋功能,令我們受打擊的

JVM虛擬機器記憶體

JVM執行時記憶體組成分為一些執行緒私有的,其他的是執行緒共享的。 執行緒私有 程式計數器:當前執行緒所執行的位元組碼的行號指示

深入Java虛擬機器——JVM記憶體

在C++中,程式設計師擁有每一個物件的所有權,但與此同時還肩負著釋放物件記憶體空間的責任;而Java由於有了虛擬機器的幫助,程式設計師擁有物件的所有權的同時不再需要釋放物件的記憶體空間。由於是JVM自動進行物件記憶體的釋放,所以記憶體洩漏和記憶體溢位的問題也很少

我理解的JVM-----Java中JVM虛擬機器

很多大佬們在推薦深入理解jvm這本書,奈何時間不夠用來部落格上簡單的取取經記錄一下,再此立個flag,明天去圖書館還書的時候一定一定要泡一整天,牆裂建議學校開個通宵自習室!!!我去買咖啡@[email protected] 1、 什麼是JVM?   JVM是Ja

Java中JVM虛擬機器

1、 什麼是JVM?   JVM是Java Virtual Machine(Java虛擬機器)的縮寫,JVM是一種用於計算裝置的規範,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。Java虛擬機器包括一套位元組碼指令集、一組暫存器、一個棧、

Java中JVM虛擬機器 一對一聊天系統找上海捌躍網路科技有限公司

1、 什麼是JVM? JVM是Java Virtual Machine(Java虛擬機器)的縮寫,JVM是一種用於計算裝置的規範,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。Java虛擬機器包括一套位元組碼指令集、一組暫存器、