黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JVM是什么?初學(xué)者對JVM了解多少

JVM是什么?初學(xué)者對JVM了解多少

更新時間:2020-10-22 17:14:00 來源:動力節(jié)點(diǎn) 瀏覽1384次

說到j(luò)ava,大家都知道這是一種十分流行且應(yīng)用廣泛的計算機(jī)語言,接觸過java語言的人大多也都知道面向?qū)ο笮?、線程安全性和跨平臺性等都是它的特點(diǎn)。那么是什么使java語言具備了這些優(yōu)秀的特性呢,JVM就是實(shí)現(xiàn)了眾多特性中一個的工具,這篇文章帶大家學(xué)習(xí)JVM是什么,希望java初學(xué)者可以通過下面的內(nèi)容對JVM有一個總體的認(rèn)識和了解。


JVM是什么,就是java虛擬機(jī),是英文Java Virtual Machine的縮寫,是由軟件技術(shù)模擬出計算機(jī)運(yùn)行的一個虛擬的計算機(jī) ,同時JVM是構(gòu)成java技術(shù)的重要一部分,先來看看java技術(shù)的結(jié)構(gòu)圖:

image.png


運(yùn)行期環(huán)境代表著Java平臺,開發(fā)人員編寫Java代碼(.java文件),然后將之編譯成字節(jié)碼(.class文件),JVM才能識別并運(yùn)行它,JVM針對每個操作系統(tǒng)開發(fā)其對應(yīng)的解釋器,所以只要其操作系統(tǒng)有對應(yīng)版本的JVM,那么這份Java編譯后的代碼就能夠運(yùn)行起來,這就是Java能一次編譯,到處運(yùn)行的原因。


要全面的理解JVM是什么,要知道如下的內(nèi)容:


1、JVM堆

Java堆是和Java應(yīng)用程序最密切的內(nèi)存空間,幾乎所有的對象都放到堆中。并且堆完全由JVM管理,通過垃圾回收機(jī)制,垃圾對象會被自動清理,而不需顯式的釋放。根據(jù)垃圾回收機(jī)制的不同,Java堆通常被分為以下的集中不同的結(jié)構(gòu):New Generation:由 Eden + Survivor (From Space + To Space)組成;Eden:所有的new出來的新對象都存放到Eden區(qū);Survivor Space:Eden每次垃圾清理過后,任然沒又被清理的對象,會轉(zhuǎn)移到交換區(qū)中;Old Generation:在交換區(qū)中未被清理的對象(默認(rèn)清理18次標(biāo)記),將轉(zhuǎn)移到老年代。


2、JVM棧

Java棧是一塊線程私有的內(nèi)存空間,Java棧和線程執(zhí)行密切相關(guān)。線程的執(zhí)行基本單位就是函數(shù)調(diào)用,每次函數(shù)調(diào)用的數(shù)據(jù)就會通過Java棧傳遞。Java棧與數(shù)據(jù)結(jié)構(gòu)上的棧有著類似的含義,它是一塊先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),只支持出棧和入棧的兩種操作。在Java棧中保存的主要內(nèi)容為棧幀。每次調(diào)用一個函數(shù),都會有一個對應(yīng)的棧幀被壓入Java棧。每一個函數(shù)調(diào)用結(jié)束,都會有一個棧幀被彈出Java棧。例如:

image.png


如圖所示,每次調(diào)用一個函數(shù)都會被當(dāng)做棧幀壓入到棧中。其中每一個棧幀對應(yīng)一個函數(shù)。由于每次調(diào)用函數(shù)都會生成一個棧幀,從而占用一定的??臻g。如果線程中存在大量的遞歸操作,會頻繁的壓棧,導(dǎo)致棧的深入過于深入,當(dāng)棧的空間被消耗殆盡的時候,會拋出StackOverflowError棧溢出錯誤。


3、JVM方法區(qū)

它主要存放一些虛擬機(jī)加載的類信息,常量,靜態(tài)變量,即使編譯器后的代碼等數(shù)據(jù)。根據(jù)Java虛擬機(jī)規(guī)范的規(guī)定,當(dāng)方法區(qū)無法滿足內(nèi)存分配需求時,將拋出OutOfMemoryError異常。運(yùn)行時常量池:運(yùn)行時常量區(qū)是方法區(qū)的一部分。用于存放編譯期生成的各種字面量和符號引用,這部分內(nèi)容將在類加載后進(jìn)入方法區(qū)的運(yùn)行時常量池中存放。還會有一些符號引用轉(zhuǎn)換的直接引用一保存在運(yùn)行時常量池中。運(yùn)行時常量池具備動態(tài)性,也就是運(yùn)行期間也可以將新的常量放入池中,例如String.intern()方法。當(dāng)常量池?zé)o法再申請到內(nèi)存時,會拋出OutOfMemoryError異常。


關(guān)于JVM是什么的問題,一句話總結(jié)下來就是:Java虛擬機(jī)是一種跨平臺的軟件,是一種新的網(wǎng)絡(luò)計算平臺。該平臺包括許多相關(guān)的技術(shù),使得同一種應(yīng)用可以運(yùn)行在不同的平臺上。使用Java虛擬機(jī)是實(shí)現(xiàn)java語言與平臺無關(guān)性的關(guān)鍵,所以在學(xué)習(xí)了JVM是什么后,要通過java教程來學(xué)習(xí)更多的JVM其他知識。


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 97视频精品| 国产在线观看午夜不卡 | 天堂在线链接 | 日韩精品亚洲专区在线观看 | 欧美人一级淫片a免费播放 欧美人妖猛交 | 国产一区二区三区免费观看 | 国产成人青草视频 | 日本黄色的视频 | 一级国产精品一级国产精品片 | 国产高清不卡一区二区 | 日本高清影院 | 天天做日日爱 | 欧美性猛交ⅹxxx乱大交免费 | 成年人在线免费播放 | 天天射天天爱天天干 | 免费看片网址 | 欧美a在线播放 | 日本天堂免费 | 日韩精品欧美激情国产一区 | 免费的一极毛片在线播放 | 黑丝美脚 | 最近中文字幕无吗 | 夜夜狠| 日韩av线观看 | 高清无遮挡在线观看 | 香蕉久人久人青草青草 | 亚洲黄色网址在线观看 | 午夜男人影院 | 欧美中文字幕在线看 | 免费妞干网 | 草草视频在线观看 | 九九在线免费视频 | 人成在线免费视频 | 边做边叫床的大尺度床戏欧美 | 日本久久精品免视看国产成人 | 在线观看黄色片 | 成年午夜视频免费观看视频 | 日本黄色片网站 | 玖玖在线免费视频 | 欧美a视频在线观看 | 狠狠狠狠狠狠 |