国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java虛擬機體系結構深入研究總結

開發 后端
本篇文章,將簡明扼要的說明Java虛擬機的體系結構和內存模型,如有用詞不妥或解釋不準確之處,請不吝指正,深感榮幸!

工作以來,代碼越寫越多,程序也越來越臃腫,效率越來越低,對于我這樣一個追求***的程序員來說,這是絕對不被允許的,于是除了不斷優化程序結構外,內存優化和性能調優就成了我慣用的“伎倆”。

要對Java程序進行內存優化和性能調優,不了解虛擬機的內部原理(或者叫規范更嚴謹一點)是肯定不行的,這里推薦一本好書《深入Java虛擬機 (第二版)》(Bill Venners著,曹曉剛 蔣靖 譯,實際上本文正是作者閱讀本書之后,對Java虛擬機的個人理解闡述)。當然了,了解Java虛擬機的好處并不僅限于上述兩點好處。從更深一點的技術層 面上看,了解Java虛擬機的規范和實現,將更加有助于我們編寫高效、穩定的Java代碼。比如,假如了解Java虛擬機的內存模型,了解虛擬機的內存回 收機制,那么我們就不會過分依賴它,而會在需要的時候顯式的”釋放內存”(Java代碼不能顯式釋放內存,但是可以通過釋放對象引用告知垃圾回收器回收該 對象需要被回收),以降低不必要的內存消耗;假如我們了解Java棧的工作原理,那么我們就可以通過減少遞歸層數,減少循環次數來降低堆棧溢出的風險。可 能對于應用開發人員來說,可能不會直接去涉及這些Java虛擬機底層實現的工作,但是了解這些背景知識,或多或少,都會對我們寫的程序產生潛移默化的好的 影響。

本篇文章,將簡明扼要的說明Java虛擬機的體系結構和內存模型,如有用詞不妥或解釋不準確之處,請不吝指正,深感榮幸!

Java 虛擬機體系結構

 

類裝載子系統

Java虛擬機有兩種類裝載器,分別是啟動類裝載器和用戶自定義裝載器。

通類裝載子系統通過類的全限定名(包名和類名,網絡裝載還包括 URL)將 Class 裝載進運行時數據區。對于每一個被裝載的類型,Java虛擬機都會創建一個java.lang.Class類的實例來代表該類型,該實例被放在內存中的堆 區,而裝載的類型信息則位于方法區,這一點和所有其他對象都是一樣的。

類裝載子系統在裝載一個類型前,除了要定位和導入對應的二進制class文件外,還要驗證導入類的正確性,為類變量分配并初始化內存,以及解析符號引用為直接引用,這些動作嚴格按照以下順序進行:

1)裝載——查找并裝載類型的二進制數據;

2)連接——執行驗證,準備以及解析(可選)

3)驗證 確保被導入類型的正確性

4)準備 為類變量分配內存,并將其初始化為默認值

5)解析 把類型中的符號引用轉換為直接應用

方法區

對于每一個被類裝載子系統裝載的類型,虛擬機都會保存下列數據到方法區:

  • 類型的全限定名

  • 類型超類的全限定名(java.lang.Object沒有超類)

  • 類型是類類型還是接口類型

  • 類型的訪問修飾符

  • 任何直接超接口的全限定名有序列表

除了上述基本類型信息,還將保存如下信息:

  • 類型的常量池

  • 字段信息(包括字段名、字段類型、字段修飾符)

  • 方法信息(包括方法名、返回類型、參數的數量和類型、方法修飾符,如果方法不是抽象和本地的,還將保存方法的字節碼、操作數棧和該方法棧幀中的局部變量區的大小和異常表)

  • 常量以外的所有類變量(其實就是類的靜態變量,因為靜態變量是所有實例共享的,且與類型直接相關,所以他們是類一級的變量,作為類的成員被保存在方法區)

一個到類ClassLoader的引用

//返回的就是剛才保存的ClassLoader引用  
String.class.getClassLoader();

一個到Class類的引用

//將返回剛才保存的Class類的引用  
String.class;

注意,方法區也是可以被垃圾回收器回收的。

Java程序在運行時創建的所有類實例或數組都放在同一個堆中,而每一個Java虛擬機也是有一個對空間,所有線程共享一個堆(這就是一個多線程的Java程序會產生對象訪問的同步問題的原因了)。

由于每一種Java虛擬機都有對虛擬機規范的不同實現,所以我們可能不知道每一種Java虛擬機在堆中是以何種形式表示對象實例的,不過我們可以通過下面這可能的實現來一窺端倪:

 

程序計數器

對于運行中的Java程序而言,每一個線程都有自己的PC(程序計數器)寄存器,它是在該線程啟動時創建的,大小為一個字長,用來保存需要被執行的下一行代碼的位置。

Java棧

每一個線程都有一個Java棧,以棧幀為單位保存線程的運行狀態。虛擬機對Java棧的操作有兩種:壓棧和出棧,二者都已幀為單位。棧幀保存了傳入參數、局部變量、中間運算結果等數據,在方法完成時被彈出,然后釋放。

看一下兩個局部變量相加時棧幀的內存快照

 

本地方法棧

這是 Java 調用操作系統本地庫的地方,用來實現 JNI(Java Native Interface,Java 本地接口)

執行引擎

Java虛擬機的核心,控制裝入 Java 字節碼并解析;對于運行中的Java程序而言,每一個線程都是一個獨立的虛擬機執行引擎的實例,從線程生命周期的開始到結束,他要么在執行字節碼,要么在執行本地方法。

本地接口

連接了本地方法棧和操作系統庫。

注:文中所有提到”Java虛擬機”的地方都是指”JavaEE和JavaSE平臺的Java虛擬機規范”。

責任編輯:王雪燕 來源: 互聯網
相關推薦

2010-09-16 14:36:43

Java虛擬機

2011-12-28 13:24:47

JavaJVM

2017-02-06 21:08:34

Android虛擬機體系結構

2011-11-30 14:12:05

JavaJVM虛擬機

2009-06-12 21:39:48

Java虛擬機體系結構Java虛擬機

2012-01-18 11:24:18

Java

2011-12-15 10:43:20

JavaNIO

2010-01-26 16:54:09

核心交換機

2010-01-18 10:23:04

核心交換機

2010-01-25 15:01:36

交換機體系結構

2010-01-06 11:21:49

.NET Framew

2011-06-01 10:58:54

Android Service

2022-05-11 09:03:05

CSS容器文本換行

2017-06-06 11:29:23

Java異常研究與分析

2016-01-12 18:04:55

Java異常研究

2010-02-06 16:44:59

三層交換機

2009-02-19 10:08:00

路由器體系結構

2010-11-23 16:35:59

MySQL刪除多表數據

2018-12-24 15:00:58

混合云多云云采用

2010-11-18 17:24:27

Oracle旋轉ins
點贊
收藏

51CTO技術棧公眾號

欧美影院精品一区| 热99精品只有里视频精品| 啊啊啊啊啊好爽| 国产精品一区二区x88av| 成人h视频在线观看| 欧美成a人免费观看久久| 国产视频精品久久久| 三区四区在线视频| 亚洲第一成人在线| 天天色综合4| 久久久久久电影| 少妇一晚三次一区二区三区| 影音先锋中文字幕一区| 91久久在线视频| 精品国产乱码久久久久久果冻传媒| 久久精品久久久久久国产 免费| 国产精品yjizz视频网| 日韩免费高清av| 老司机午夜在线视频| 欧美日韩综合在线免费观看| 色视频在线看| 日本乱人伦aⅴ精品| 色网址在线观看| 精品毛片网大全| 国产在线高清| 欧美高清dvd| 在线观看中文| 亚洲精品乱码久久久久久按摩观| 黄色在线视频网站| 精品美女在线播放| 看黄在线观看| 在线亚洲午夜片av大片| 国产香蕉久久| 日韩三级影视基地| 国产一区二区三区亚洲| 欧美专区在线播放| 欧美电影一区| 久久久影院一区二区三区| 爽好久久久欧美精品| 亚洲区成人777777精品| 不卡的av网站| www.99com| 日韩欧美成人免费视频| 国产秀色在线www免费观看| 亚洲精品国精品久久99热一| 欧美日韩五区| 韩国精品久久久999| 区一区二视频| 欧美日韩最好看的视频| 国产一级精品在线| 欧美牲交a欧美牲交| 国产精品二三区| 在线观看黄色| 日韩欧美不卡在线观看视频| 视频二区不卡| 日本国产精品视频| 午夜性色一区二区三区免费视频| 色阁综合av| 97精品视频在线观看自产线路二| 3344永久| 欧美日韩成人一区| 日韩成人亚洲| 成人乱色短篇合集| 国产真实乱子伦精品视频| 中文字幕一区二区三区四区在线视频| 亚洲国产精品自拍| 波多野结依一区| 欧美激情第99页| 亚洲精品123区| 国产a级一级片| 一本一道久久a久久精品 | 中国免费黄视频| 欧美自拍偷拍午夜视频| 亚洲天堂一区二区| 国产在线精品播放| 国产乱人伦偷精品视频免下载| 日韩精品视频一二三| 欧美日韩国产天堂| 伊人久久大香线蕉综合影院首页| 国产日韩欧美视频在线| 精品在线一区二区| 写真片福利在线播放| 亚洲缚视频在线观看| av中字幕久久| 成人手机在线播放| 91久久精品一区二区三区| 国产超碰精品| 国产区日韩欧美| 中文字幕在线不卡| 超碰在线99| 亚洲精品日产aⅴ| 91丨porny丨户外露出| 日本免费视频在线观看| 久久久影视精品| 久草热8精品视频在线观看| 中文字幕在线播放第一页| 久久精品这里热有精品| 青青草国产成人99久久| 黄色高清在线观看| 欧美丰满少妇xxxxx| 日本欧美久久久久免费播放网| 男女激情网站| 欧美激情第6页| 国产xxx精品视频大全| 国产区在线观看| aa日韩免费精品视频一| 亚洲欧美电影院| 国产激情一区| 欧美激情亚洲天堂| 日韩一级黄色片| 久久精品亚洲人成影院| 成人3d动漫网站| 久久6免费高清热精品| 国产一区二区三区免费观看| 免费黄色网页在线观看| 91久久综合亚洲鲁鲁五月天| 亚洲精品欧美专区| 任我爽精品视频在线播放| 国模吧无码一区二区三区| 国产亚洲欧美日韩美女| 精品中文字幕一区二区小辣椒| 国产在线激情| 免费在线国产精品| 3d成人h动漫网站入口| 国产一区欧美| 99免在线观看免费视频高清| 99热99热| 欧美在线|欧美| 激情欧美国产欧美| 1pondo在线播放免费| 国产欧美一区二区三区另类精品| 精品久久久国产| 911精品美国片911久久久| 中文字幕免费在线| 99国产超薄丝袜足j在线观看 | 日韩欧美一区二区三区四区五区 | 久久夜夜久久| 波多野结衣三级在线| 精品日韩成人av| 美女国产一区二区三区| 手机av在线播放| 亚洲三区在线观看| 亚洲成色www8888| 国产麻豆精品久久一二三| 四虎4545www精品视频| 成人免费毛片在线观看| 日韩最新在线视频| 国产精品理论在线观看| 亚洲大奶少妇| jizzjizzjizz亚洲女| 国产精品1区2区在线观看 | 色综合色狠狠综合色| 亚洲国产精品日韩专区av有中文 | 美女搞黄视频在线观看| 老汉色影院首页| 亚洲午夜小视频| 久久久av毛片精品| 欧美色图婷婷| 超碰在线图片| 久久久久无码国产精品一区| 91精品国产色综合久久| 裸体在线国模精品偷拍| 成人亚洲网站| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 欧美日韩在线影院| 国内成人在线| 秋霞在线午夜| 国产精品亚洲αv天堂无码| 亚州欧美日韩中文视频| 亚洲午夜久久久久久久久电影院| 91精品综合| 狂野欧美激情性xxxx欧美| 波多野结衣av一区二区全免费观看| 久久精品国产免费观看| 亚洲在线免费播放| 亚洲综合国产| 精品福利在线| 青草久久伊人| 免费观看黄色大片| 久久乐国产精品| 日本精品视频一区二区| 国产一区激情在线| 日韩精选在线| 色的视频在线免费看| 欧美人伦禁忌dvd放荡欲情| 久久久夜夜夜| 亚洲天堂av资源在线观看| 婷婷亚洲一区二区三区| 亚洲国产精品影视| 91精品91久久久久久| 在线观看91av| 99久久综合色| 欧美激情偷拍| 日韩大陆av| 日本中文字幕在线2020| 久久久999免费视频| 91久久嫩草影院一区二区| 亚洲人成电影网站色…| 亚洲mv大片欧洲mv大片精品| 国产成人精品免费视频网站|