成人黄色在线网站 I 国产aa免费 I 中文字幕免费高清 I 国产三级影院 I 日韩欧美三级在线观看 I 久久久国产精品麻豆a片 I 欧美与黑人午夜性猛交久久久 I 91国产精品视频在线 I 国产美女狂喷水潮在线播放 I 黄页免费网站在线观看 I 欧美日韩激情视频 I 午夜理论无码片在线观看免费 I 深夜爽爽动态图无遮无挡 I 国精产品一区一区三区有限公司杨 I 天天操天天舔天天爽 I 免费看日本黄色片 I 成人va在线 I 日韩中文字幕在线观看 I 婷婷综合网 I 97视频免费观察看 I 色月丁香 I 日韩视频一二三 I 男女黄色毛片 I 美女疯狂连续喷潮视频 I 亚洲日本va一区二区sa I 欧美日韩视频区 I 毛片网在线 I 欧美一本在线 I 少妇一级淫片免费放香蕉 I avav在线看 I 久久精品亚洲中文字幕无码网站 I 天堂av在线中文在线新版 I 电影一区 电影二区 I 色av吧 中文字幕 I 国产精品伊人色

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網 > 新聞資訊 > 電腦/IT > java培訓 >  Java跨平臺運行的原理

Java跨平臺運行的原理

來源:培訓無憂網 發布人:裴裴

2022-04-28 12:42:15|已瀏覽:264次

Java跨平臺運行的原理

Java跨平臺運行的原理

      Java跨平臺運行的原理,Java能進行進行跨平臺運行主要是源于JVM(Java Virtual Machine,Java虛擬機),是通過JVM實現了特定平臺下的Java解釋器,Java字節碼就可以通過解釋器在該平臺下執行,這就是Java跨平臺的根本。

      1、Java源文件的編譯過程

      Java跨平臺運行的原理,Java應用程序的開發周期包括編譯、下載、解釋和執行幾個部分。Java編譯器將Java源程序翻譯為JVM可執行的代碼—字節碼。這一編譯過程與C/C++的編譯有些不同,C/C++編譯器生成的代碼是針對某一硬件平臺的代碼。

      因此,在編譯過程中,編譯器通過查表將所有對符號的引用轉換為特定的內存偏移量,以保證程序的正確運行。

      而Java編譯器則不會把對變量和方法的引用編譯為數值引用,也不確定程序運行過程中的內存布局,而是將這些符號引用信息保留在字節碼中,由解釋器在運行時去創建內存布局,然后再通過查表來確定一個方法所在的地址,這樣就有效地保證了Java的可移植性和安全性。

      2、Java解釋器運行機制

      運行字節碼的工作是由解釋器來完成的。解釋執行過程分為三步:代碼裝入、代碼校驗、代碼執行。

      代碼裝入的工作由類加載器(Class Loader)來完成。類加載器負責加載運行程序所需要的所有代碼。當類加載器加載一個類之后,類被放在自己的名字空間中,除了通過符號引用自己名字空間以外的類,類與類之間沒有其他辦法可以相互影響。

      當加載了運行程序所需要的所有類之后,解釋器便可以確定整個可執行程序的內存布局,并為符號引用同特定地址空間建立對應關系查詢表。

      通過在這一階段確定代碼的內存布局,Java很好地解決了由于基類改變而導致子類崩潰的問題,同時也防止了代碼對地址的非法訪問。

      當代碼被裝入之后,字節碼校驗器開始對字節碼進行檢查。校驗器可以發現操作數棧的溢出和非法數據類型轉換等多種錯誤。在校驗通過后,Java代碼便開始執行了。

      3、Java字節碼的執行方式

      Java在執行字節碼時有兩種方式:即時編譯方式和解釋執行方式。即時編譯方式(JITJust In Time)先將字節碼編譯成機器碼,再執行機器碼。這種運行方式的優點是執行經過二次編譯后的機器碼可以提高程序的執行速度。

      解釋執行方式是解釋器通過每次解釋,并執行一小段代碼來完成Java字節碼程序的所有操作。比如,若Java字節碼要對兩個數值進行加法操作,則解釋器調用自身的一段代碼來完成加法操作。

      注:尊重原創文章,轉載請注明出處和鏈接 http://www.hebeijilong.cn/news-id-30248.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注java培訓頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規劃更適合你的專業課程!
  • 姓名:

  • 手機:

  • 地區:

  • 想學什么:

  • 培訓無憂網
免 費 申 請 試 聽
提交申請,《培訓無憂網》課程顧問老師會一對一幫助你規劃更適合你的專業課程!