日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm_虚拟机组成部分概述

發布時間:2024/4/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm_虚拟机组成部分概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JAVA虛擬機的組成部分

大體上分為9部分:1. 類加載子系統: 負責從文件系統或者網絡中加載Class信息,對類做加載2. 方法區: 靜態的常量,也稱之為永久區,3. java堆: java堆就是對象,4. 直接內存: direct 使用NIO操作的時候會直接操作這塊,Java的NIO庫允許JAVA程序使用直接內存,從而提高性能,通常使用直接內存會優于JAVA堆,讀寫頻繁的場合可能會考慮使用.5. java棧:就是變量,每一次啟動Thread線程的時候,它都會有一個棧,有的時候會報異常,有的時候會報棧過深,比如你做一個遞歸調用的時候,總會有一個棧太深的時候,遞歸的次數太多了,棧總是有一個深度的,這和你棧分配的大小是有直接關系的,一個線程的java棧在創建的時候會被創建,也就是線程被創建的時候棧被創建,JAVA棧保存一些局部變量,你聲明一些局部變量,有一些什么int東西,方法的參數,包括方法的調用,返回值等等.6. 本地方法棧:基本上沒有什么用,本地方法棧最大的不同是JAVA虛擬機允許JAVA直接調用本地方法(通常使用C編寫)7. 垃圾回收系統: JAVA GC, Garbage Collection 垃圾回收系統,各種各樣的垃圾收集器,這是JAVA虛擬機必不可少的一個東西,有的時候你必須了解垃圾回收器,包括里面的算法,包括一些常用的垃圾回收器的機制,它是以什么的目標來設計的,8. PC寄存器":(Program Counter)寄存器也是每個線程私有的空間,JAVA虛擬機會為每個線程創建PC寄存器,寄存當前執行環境的指針,程序計數器,操作指針,計算的變量指針,存一些指針的,計數,用來計數的.就在你JAVA跑的過程中,他想要計數的一些事情,環境變量指針這些東西,就是用PC寄存器去做了,他也是虛擬機必不可少的一個部分,當然問的比較少,沒什么意義,JAVA程序員根本就不需要做指針這一塊,JAVA程序員根本就不需要考慮這一塊,9. 執行引擎:執行java代碼的,虛擬機最核心的就是執行引擎了,它負責執行虛擬機的執行碼,類加載子系統給你加載好了之后,直接通過執行引擎去執行大體上我們的JAVA虛擬機分這么9塊,比較重要的有:第1塊java堆,第2塊垃圾回收系統,就這兩塊有意義,所有其他的了解即可方法區:就是存放類信息,常量信息,常量池信息,包括字符串字面量和數字常量等.JAVA堆:堆空間是所有線程共享的這9塊區域我們只介紹大概的概念,重點要說明的就是堆,棧,方法區3個概念開始說起了,首先我們自己來看一下堆,棧,方法區這三塊,堆是解決數據存儲的問題,即數據怎么放,放在哪兒,你寫程序而言,new 一個什么對象,那這個對象到了哪兒,那這個是在JAVA堆里面可以幫你解決的,棧解決是程序運行的問題,即程序如何執行,或者說如何處理數據,方法區則是輔助堆棧的一塊永久區(Perm),解決堆棧信息的產生,是一個先決條件,你要new 一個對象,連這個user都不知道怎么找你怎么new這個user,你一定要從永久區去把user模板的class給我弄出來,然后實例處理來一個實例對象,然后對應的user的引用就放在棧里面,基本上這就是三塊內容 比如我現在有一個u1實例和一個u2實例,我們都是通過方法區或者是永久區的一個類User類以及方法實現這里肯定是一塊在方法區存放的,比如現在想通過方法區的類創建兩個實例對象的話,那首先這兩個實例對象那u1實例和u2實例肯定是放在JAVA堆中的,有兩塊的內存,然后在棧里面也會有各自的引用,這個就是簡單方法區的一個描述吧,無非就是這么3塊,這就相當于永久區存放的類,常量等等,一個模板的信息

你要是要實例化對象你就把對象放在堆里面,你外邊如果想使用必須有一個引用,引用則必須放在棧里面,user 你必須寫第一段代碼, User u = new User(); 首先這個大小的User是哪里來的,首先它是一個class,肯定是放在Perm用就去里面的,然后真正去調用new操作的時候,是不是相當于把這個對象給new這個對象,簡單介紹完JAVA里面的這幾個部分,以及簡單的了解了JAVA里面的這個堆,棧,方法區,這三塊都是做什么事情的,當然只是簡單了解一下,然后我們再講一下JAVA堆里具體是一個什么樣的堆結構.

?

總結

以上是生活随笔為你收集整理的jvm_虚拟机组成部分概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。