国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

什么叫JAVA虛擬機

2019-11-18 13:24:11
字體:
來源:轉載
供稿:網友

  在java中引入了虛擬機的概念,即在機器和編譯程序之間加入了一層抽象的虛擬的機器。
  這臺虛擬的機器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向
  虛擬機,生成虛擬機能夠理解的代碼,然后由解釋器來將虛擬機代碼轉換為特定系統的機
  器碼執行。在Java中,這種供虛擬機理解的代碼叫做字節碼(ByteCode),它不面向任何
  特定的處理器,只面向虛擬機。
  每一種平臺的解釋器是不同的,但是實現的虛擬機是相同的。Java源程序經過編譯器編譯
  后變成字節碼,字節碼由虛擬機解釋執行,虛擬機將每一條要執行的字節碼送給解釋器,
  解釋器將其翻譯成特定機器上的機器碼,然后在特定的機器上運行。
  
  可以說,Java虛擬機是Java語言的基礎。它是Java技術的重要組成部分。Java虛擬機是一
  個抽象的計算機,和實際的計算機一樣,它具有一個指令集并使用不同的存儲區域。它負
  責執行指令,還要治理數據、內存和寄存器。Java解釋器負責將字節代碼翻譯成特定機器
  的機器代碼。Java是一種簡單的語言。它用到的概念不多,而且多為程序員所熟悉。假如
  你是一名程序員,把握Java對你來說是易如反掌的事。即使你沒有學過任何編程語言,學
  習Java也要比學習C++要輕易的多。
  
  由于Java最初是為控制電子產品設計的,因此它必須簡單明了。為了保證這種簡單性,
  Java去掉了C++中許多復雜的、冗余的、有二義性的概念,例如操作符重載、多繼續、數
  據類型自動轉換等。為了將程序員從復雜的內存治理的負擔中解脫出來,同時也是為了減
  少錯誤,Java使用了自動內存垃圾收集機制,程序員只要在需要的時候申請即可,不需要
  釋放,而由Java自己來收集、釋放內存中的無用的塊。
  
  與C++相比,Java有著更強的面向對象特性,是一種比較純粹的面向對象語言。一般我們
  使用的一些所謂的面向對象的編程語言,如C++,Object Pascal等,實際上都是一種混合
  型的語言,即在過程式的語言中加上面向對象的擴展。在Java中,幾乎萬物皆對象,就連
  一些基本數據類型,如整型、字符型、浮點型等,在Java中都可以作為對象處理。Java的
  面向對象特性幾乎可以與Smalltalk媲美,但是其適用于分布式計算環境的特性卻遠遠超
  過了Smalltalk。
  
  Java是一種支持分布式操作的程序設計語言。使用Java提供的URL類,用戶可以象訪問本
  地文件一樣訪問網絡上的對象,使用非常方便。在客戶機/服務器的模式下,Java還可以
  將運算從服務器端分散到客戶端,提高系統的效率,避免了服務器的瓶頸制約。Java的網
  絡類庫支持分布式的編程。Socket類提供可靠的流式網絡的連接,支持TCP/ip協議。通過
  編寫協議句柄,程序員還可以擴充Java支持的協議集合。
  
  Java提供非常有效的安全控制。由于Java應用于網絡程序的開發,因而安全性變的至關重
  要。因為Java小程序需要下載到客戶端解釋執行,所以,假如沒有安全控制,就會給一些
  網絡黑客以可乘之機,這對用戶來說是非常危險的。所幸的是,Java的安全機制可以有效
  的防止病毒程序的產生、下載程序對本地文件系統的破壞,以及網絡黑客竊取密碼和入侵
  。
  
  Java是一種非常健壯的語言。因為在Java中使用了以下手段:
  
  不支持指針。在C++程序中,指針的錯誤使用通常的程序中BUG的元兇。在Java中徹底去掉
  了指針,杜絕了內存的非法訪問,從而保證了程序的可靠性。
  
  強類型語言。
  
  自動內存垃圾收集機制。Java自動收集無用的內存單元,進而防止了由于內存泄漏導致的
  動態內存分配問題。
  
  完善的異常處理機制,既簡化了錯誤處理任務和恢復,也增加了程序的可讀性。
  
  Java具有非常好的平臺無關性和可移植性。因為Java最初是為對電子產品編程而設計的,
  所以它具有完美的平臺無關性。它使用一種與平臺無關的代碼──字節碼,而不是通常的
  特定機器上的機器碼,由平臺上的Java虛擬機中的Java解釋器解釋執行。Java虛擬機是免
  費的,在許多平臺上都有。
  
  Java提供了良好的可移植性。使用Java作為編程語言,只要進行一次程序開發工作,所開
  發的程序不需要經過任何改動,便能在各種平臺上運行。Java使用兩種方法使Java的應用
  程序不依靠與具體的系統:
  
  采用基于國際標準的數據類型。Java的原始數據類型在任何機器上都是一樣的,例如整型
  總是32位,長整型總是64位等。
  
  提供了一個用于訪問底層操作系統功能的可擴展類庫。
  
  Java是一種高性能的語言。“魚與熊掌不可兼得”,通常,健壯性、安全性、平臺無關性
  、可移植性等方面的提高總是要以犧牲性能為代價的。Java也不例外,Java的內存治理增
  加了運行時系統的復雜性,因為Java運行時系統必須內嵌一個內存治理模塊;同樣,Java
  程序的解釋執行的效率也要低于直接執行編譯后的源碼的效率。但是Java采用了一些很好
  的措施來彌補這些性能上的差距:
  
  生成高效的字節碼。Java字節碼的設計充分考慮了性能的因素,字節碼的格式簡單,解釋
  器可以生成高效的機器碼。
  
  提供了即時編譯和嵌入C代碼的可選措施。即時編譯是指在運行時把字節碼編譯成機器碼
  。
  
  支持多線程。Java提供了對多線程的語言級的接口,而且Java環境本身就是多線程的。
  
  Java對多線程有良好的支持。多線程技術可以提高程序執行的并發度,提高圖形用戶界面
  的交互性能。Java提供了語言內置的多線程控制,簡化了多線程應用程序的開發,還支持
  線程的同步控制。
  
  Java是一種動態的語言。動態特性是面向對象特性的一個延伸,它使得程序能夠適應不斷
  變化的執行環境。Java的動態性主要表現在以下幾個方面:
  
  Java的類有運行時的表示,這樣,即使在運行時刻,程序也能辨別類之間的關系和類型信
  息,可以動態的從本地或網上把一個類鏈接到運行系統中去。
  
  后期聯編。Java的類在運行過程中動態的裝載,因此,Java可以在分布式的環境中動態的
  維護應用程序和Java類庫之間的一致性。當類庫升級后,應用程序無需重新編譯,也一樣
  可以利用新類庫中新增的功能。
  
  支持動態數據類型和動態協議。通過編寫協議句柄,Java可以支持新的、自定義的傳輸協
  議,編寫內容句柄,可以支持新的數據類型。
  
  至于應用,就不必說了!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瑞金市| 贵阳市| 东城区| 凤山县| 阜平县| 大冶市| 龙山县| 闸北区| 石河子市| 祥云县| 鹿邑县| 通榆县| 武冈市| 和田县| 白玉县| 合肥市| 怀宁县| 商丘市| 山阴县| 五家渠市| 盐亭县| 岳西县| 滨州市| 和静县| 凌源市| 长沙县| 镇康县| 望奎县| 漯河市| 张掖市| 和硕县| 潮州市| 望谟县| 麻江县| 嘉祥县| 望江县| 大足县| 太仆寺旗| 五华县| 孝感市| 遂昌县|