成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java基礎:Java 虛擬機的詳細講解

開發 后端
很多學習Java基礎的朋友還不知道Java虛擬機是怎么工作的,本文將為你詳細講解(JVM)Java虛擬機。

  在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虛擬機可以支持新的、自定義的傳輸協議,編寫內容句柄,可以支持新的數據類型。

【編輯推薦】

  1. 高手Java核心技術學習筆記
  2. 如何使用 JavaScript XSLT 處理 XML 文件
  3. JSP結合XML+XSLT將輸出轉換HTML
  4. Java通過JNI調用C語言的方法
  5. JAVA環境變量的設置
責任編輯:王觀 來源: 天極網
相關推薦

2018-06-19 15:39:21

HeapJava虛擬機

2011-06-22 13:35:55

JVM

2009-03-30 18:24:41

Vmware虛擬化虛擬機

2023-03-06 10:03:05

Java運行機制

2010-09-17 15:12:57

JVMJava虛擬機

2020-06-03 19:07:49

Java虛擬機JVM

2009-06-12 16:02:58

裝載Java虛擬機

2010-03-03 09:57:37

Linux虛擬機

2009-12-24 15:09:16

Linux內核版本

2010-01-06 16:06:11

2010-09-25 15:13:40

JVMJava虛擬機

2019-03-05 14:59:42

Java虛擬機加載類

2020-10-21 08:16:37

Java基礎入門篇

2020-05-08 16:55:48

Java虛擬機JVM

2009-06-12 16:15:42

死鎖Java虛擬機

2020-06-03 14:43:26

Java虛擬機JVM

2011-11-10 13:44:13

VMwareKVM遷移

2011-12-28 13:24:47

JavaJVM

2009-06-12 15:41:01

Java虛擬機

2018-02-24 12:54:51

Java虛擬機面試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本三级全黄三级a | 亚洲一区二区av | 国产亚洲精品久久19p | 久久久青草婷婷精品综合日韩 | 欧美一区二区三区在线免费观看 | 久久久久久久久久久久亚洲 | 国产精品二区三区在线观看 | 狠狠操操 | 久久久女女女女999久久 | 国产福利视频 | 精品日韩一区二区 | 青青草在线播放 | 久久三区| 亚洲人在线| 亚洲成人精品在线观看 | 亚洲第1页| 免费在线观看毛片 | 亚洲精品黄色 | 黄色亚洲网站 | www.成人.com | 欧美日韩精品一区二区三区视频 | 超碰欧美| 亚洲国产精品久久久久婷婷老年 | 精品网站999 | 秋霞a级毛片在线看 | 精品国产一区二区三区日日嗨 | 亚洲综合电影 | 91久久网站 | 免费在线观看成人 | www久久| 日韩一区二区三区在线视频 | 96国产精品久久久久aⅴ四区 | 91视频在线观看 | 国产成人综合在线 | 国产一区二区中文字幕 | 亚洲高清在线观看 | 日韩精品视频一区二区三区 | 欧美一级欧美一级在线播放 | 中文字幕11页 | 天天操天天插天天干 | 成人在线精品视频 |