JVM體系結構

JVM體系結構

Java虛擬機主要分為五大模塊:

  • 類裝載器子系統
  • 運行時數據區
  • 執行引擎
  • 本地方法接口
  • 垃圾收集模塊
  • 在這里插入圖片描述1、JVM一共分為五個區,分別為方法區、堆、Java棧、本地方法棧、程序計? 2、方法區、堆為線程共享區域,GC會對二個區進行垃圾回收;
  • ? 3、Java棧、本地方法棧、程序計數器為線程私有區域;

    ? 4、程序計數器:程序計數器是一塊較小的內存空間,是當前線程所執行的字節碼的行號指示器?程序計算器處于線程獨占區?如果線程執行的是java方法,記錄的是正在執行的虛擬機字節 碼指令的地址,如果是native方法,這個計數器值為undefined;

    ? 5、Java棧:棧也叫棧內存,主管Java程序的運行,是在線程創建時 創建,它的生命期是跟隨線程的生命期,線程結束棧內存也就釋放,對于棧來說不存在垃圾回收問題,只要線程一結束該棧就Over,生命周期和線程一致,是線程私有的。8種基本類型的變量+對象的引用變量+實例方法都是在函數的棧內存中分配,棧里有棧幀,有返回對象、本地變量表、操作數棧、動態連接。

    ? 6、本地方法棧:它的具體做法是NativeMethod Stack中登記native方法,在ExecutionEngine執行時加載本地方法庫;

    ? 7、方法區:方法區是被所有線程共享,所有字段和方法字節碼,以及一些特殊方法如構造函數,接口代碼也在此定義。簡單說,所有定 義的方法的信息都保存在該區域,此區屬于共享區間


    方法區是一種特殊的堆,棧里面不會有垃圾,用完就彈出了,否則阻塞了main方法嗎,垃圾幾乎都在堆里,所以JVM性能調優%99都針對于堆

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271227.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271227.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

找數據?這幾個數據源網站就夠用了?

來源:經管學苑轉自:經管學苑大家好,我是小z在這個用數據說話的時代,能夠打動人的往往是用數據說話的理性分析,無論是對于混跡職場的小年輕,還是需要數據進行分析和研究的同學,能夠找到合適的數據…

solaris11-text-安裝GUI(gnome)

http://blog.chinaunix.net/xmlrpc.php?rblog/article&uid45057&id3018467 1.下載所需的資源Text Installer CDRepository Image(a,b)http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html2.用text CD安裝solaris11安裝那是相當的快呀&a…

java replaceall 大小寫_Java replaceAll不區分大小寫

Java 中replaceAll如何忽略大小寫呢?方式一:在正則表達式前面添加(?i)Testpublic void test_replaceAll33(){String input "I like Java,jAva is very easy and jaVa is so popular.";String replacement"cccc";System.out.println(input);System.out.p…

jdk環境變量配置_jmeter及jdk的環境變量配置

jmeter是apache公司基于java開發的一款開源壓力測試工具,其內部原理都是源于java的運行,并支持多種外部插件用于接口及性能測試,最主要的還是開源免費,在安裝jmeter前必須配置jdk環境。jdk下載地址:https://www.oracle…

jvm是運行在操作系統之上的,他和硬件沒有直接的交互

jvm是運行在操作系統之上的,他和硬件沒有直接的交互

SQL語言基礎:觸發器相關知識介紹?

1、觸發器 Trigger介紹觸發器可以實現完整性規則和保證一些復雜業務規則的實施。針對示警或滿足特定 條件下自動執行某項任務來說,觸發器是十分有用的機制。觸發器是由事件1驅動的特殊過程,一旦由某個用戶定義,任何用戶對該觸發器指定的數據新…

socket與socketServer通信

服務端代碼: public class TalkServer {public static void main(String args[]){try {//創建服務器,開放7777端口ServerSocket server new ServerSocket(7777);while(true){Socket socket server.accept();System.out.println("客戶端與服務端已…

java struts2值棧ognl_Struts2的值棧和OGNL牛逼啊

Struts2的值棧和OGNL牛逼啊一 值棧簡介:值棧是對應每個請求對象的一套內存數據的封裝,Struts2會給每個請求創建一個新的值棧,值棧能夠線程安全的為每個請求提供公共的數據存取服務。二 OGNL介紹:(1)基本數據:OGNL 是對…

還在用 Notepad++嗎? 盤點五款更好用的文本編輯器

來自:oschina.net/news/110987/no-notepad-plus-plus | 責編:樂樂正文 Notepad 一直飽受爭議,2018年開始然后引發了大家的關注,這里師長作為技術媒體,不方便帶啥節奏,具體事件內容請大家自行百度。其實作…

python3列表_Python3 列表List(十一)

list是一種有序可重復的集合,可以隨時添加和刪除其中的元素。序列是Python中最基本的數據結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。Python有6個序列的內置類型…

ubuntu14.04 boost動態庫找不到 libboost_system.so.1.58.0

error while loading shared libraries: : cannot open shared object file: No such file or directory 解決辦法:向ld.so.conf文件中添加libboost_system.so.1.58.0所在的目錄路徑sudo vim /etc/ld.so.conf sudo ldconfig http://blog.csdn.net/smallfish0315/ar…

SQL語言:嵌入式SQL知識筆記

1、概念SQL提供了將SQL語句嵌入到某種高級語言中的使用方式,通常采用預編譯的方法將SQL語句嵌入高級語言中。采用的方法由DBMS的預處理程序對源程序進行掃碼、識別出SQL語句,把它們轉換為主語言調用語句,這樣可以讓主語言編譯程序能識別它&am…

Mysql bat腳本編寫_第一次編寫bat腳本

** 前言 **今天中午在宿舍不想做什么事,于是想到傻怡的電腦太卡了,多方面原因造成的,多軟件安裝于系統盤、安裝了沒用的殺毒軟件等等,但是對于windows系統來說呢,使用時間長了,會有很多的緩存文件、日志文件…

python 關閉窗口事件_關于python:如何在Tkinter中處理窗口關閉事件?

如何在Python Tkinter程序中處理窗口關閉事件(用戶單擊" X"按鈕)?Tkinter支持一種稱為協議處理程序的機制。在這里,術語協議是指應用程序和窗口管理器之間的交互。最常用的協議稱為WM_DELETE_WINDOW,用于定義當用戶使用窗口管理器顯…

windows+caffe(三)——求取圖片的均值

這個要在圖片已經轉化成lmdb格式下才能求均值。。。 1.查看caffe根目錄下的bin是否存在compute_image_mean.exe(用的happey大神的) 如果沒有存在,你需要打開MainBuilder.sln,右鍵compute_image_mean-僅用于項目-僅生成compute_ima…

硬盤知識:硬盤中藍盤、綠盤、黑盤、紅盤有什么區別?

今天給大家介紹一下電腦硬盤中藍盤、綠盤、黑盤、紅盤有什么區別?我們平常說的藍盤、黑盤、紅盤、綠盤這些通常指的是西部數據旗下所產的硬盤,通過各自的特點進行了上述的分類。從外觀上我們可以通過硬盤上貼的紙的顏色來區分。綠盤:監控盤&a…

java 框架mvc_JAVA框架-MVC模式

MVCMVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用于應用程序的分層開發。Model(模型) - 模型代表一個存取數據的對象或 JAVA POJO。它也可以帶有邏輯,在數據變化時更新控制器。View(視圖) - 視圖代表模型包含的數據的可視化。Controller(…

python selenium 獲取同一元素的多個屬性_python+selenium如何獲取元素中并列的屬性值?...

獲取標簽內容使用element.attribute()方法獲取dom元素的內容,如:dr driver.find_element_by_id(tooltip)dr.get_attribute(data-original-title) #獲取tooltip的內容dr.text #獲取該鏈接的text獲取標簽屬性linkdr.find_element_by_id(tooltip)link.valu…