国产av一区二区不卡-精品国产高清自在线看超-中文字幕亚洲一区二区va在线-国产三级不卡在线播放

×
新網 > 虛擬主機 > 正文

Java虛擬機的原理是怎樣的?學習一下吧

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-04-25 13:18:29

Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。

1422846068116560.jpg

        Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。

<div>  Java是平臺無關的語言是指用Java寫的應用程序不用修改就可在不同的軟硬件平臺上運行。平臺無關有兩種:源代碼級和目標代碼級。C和C++具有一定程度的源代碼級平臺無關,表明用C或C++寫的應用程序不用修改只需重新編譯就可以在不同平臺上運行。
  Java主要靠Java虛擬機(JVM)在目標碼級實現平臺無關性。JVM是一種抽象機器,它附著在具體操作系統之上,本身具有一套虛機器指令,并有自己的棧、寄存器組等。但JVM通常是在軟件上而不是在硬件上實現。(目前,SUN系統公司已經設計實現了Java芯片,主要使用在網絡計算機NC上。另外,Java芯片的出現也會使Java更容易嵌入到家用電器中。)JVM是Java平臺無關的基礎,在JVM上,有一個Java解釋器用來解釋Java編譯器編譯后的程序。Java編程人員在編寫完軟件后,通過Java編譯器將Java源程序編譯為JVM的字節代碼。任何一臺機器只要配備了Java解釋器,就可以運行這個程序,而不管這種字節碼是在何種平臺上生成的。另外,Java采用的是基于IEEE標準的數據類型。通過JVM保證數據類型的一致性,也確保了Java的平臺無關性。
  Java虛擬機通過調用某個指定類的方法main啟動,傳遞給main一個字符串數組參數,使指定的類被裝載,同時鏈接該類所使用的其它的類型,并且初始化它們。例如對于程序:
  public class HelloApp {
  public static void main(String[] args){
  System.out.println("Hello World!");
  for (int i = 0; i < args.length; i++ ) {
  System.out.println(args);
  }
  }
  }
  編譯后在命令行模式下鍵入:java HelloApp run virtual machine
  將通過調用HelloApp的方法main來啟動java虛擬機,傳遞給main一個包含三個字符串"run"、"virtual"、"machine"的數組。現在我們略述虛擬機在執行HelloApp時可能采取的步驟。

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading