當前位置:才華齋>計算機>java語言>

Java語言技術三大特性

java語言 閱讀(3.14W)

Java是一種可以撰寫跨平臺應用程式的面向物件的程式設計語言。以下本站小編整理的Java語言技術三大特性的介紹,希望對大家有所幫助,更多資訊請關注應屆畢業生網!

Java語言技術三大特性
  1 :虛擬機器

Java 虛擬機器 JVM(Java Virtual Machine)在 Java 程式設計裡面具有非常重要的地位,約相當於前面學到的 Java 執行環境,虛擬機器的基本功能如下:

(1):通過 ClassLoader 尋找和裝載 class 檔案

(2):解釋位元組碼成為指令並執行,提供 class 檔案的執行環境

(3):進行執行期間垃圾回收

(4):提供與硬體互動的平臺

Java虛擬機器是在真實機器中用軟體模擬實現的一種想象機器。Java虛擬機器程式碼被儲存在 s檔案中; 每個檔案都包含最多一個public類。 Java 虛擬機器規範為不同的硬體平臺提供了一種編譯Java技術程式碼的規範,該規範使Java 軟體獨立於平臺,因為編譯是針對作為虛擬機器的“一般機器”而做。這個“一般機器”可用軟體模擬並運行於各種現存的計算機系統,也可用硬體來實現。編譯器在獲取Java應用程式的原始碼後,將其生成位元組碼,它是為JVM生成的一種機器碼指令。每個Java直譯器,不管它是Java技術開發工具,還是可執行applets 的Web瀏覽器,都可執行JVM。

JVM 為下列各項做出了定義

- 指令集(相當於中央處理器[CPU] )

- 暫存器

- 類檔案格式

- 棧

- 垃圾收集堆

- 儲存區

JVM 的程式碼格式由緊縮有效的位元組碼構成。 由 JVM 位元組碼編寫的程式必須保持適當的型別約束。大部分型別檢查是在編譯時完成。任何從屬的 Java 技術直譯器必須能夠執行任何含有類檔案的`程式,這些類檔案應符合 Java 虛擬機器規範中所指定的類檔案格式。

1.1 :虛擬機器是 Java 平臺無關的保障

正是因為有虛擬機器這個中間層,Java 才能夠實現與平臺無關。 虛擬機器就好比是一個 Java執行的基本平臺,所有的 Java 程式都執行在虛擬機器上,如下圖所示:

  2 :垃圾回收

2.1 :什麼是垃圾

在程式執行的過程中,存在被分配了的記憶體塊不再被需要的情況,那麼這些記憶體塊對程式來講就是垃圾。

產生了垃圾,自然就需要清理這些垃圾,更為重要的是需要把這些垃圾所佔用的記憶體資源,回收回來,加以再利用,從而節省資源,提高系統性能。

2.2 :垃圾回收

- 不再需要的已分配記憶體應取消分配(釋放記憶體)

- 在其它語言中,取消分配是程式設計師的責任

- Java 程式語言提供了一種系統級執行緒以跟蹤記憶體分配

- 垃圾收集

- 可檢查和釋放不再需要的記憶體

- 可自動完成上述工作

- 可在 JVM 實現週期中,產生意想不到的變化

許多程式語言都允許在程式執行時動態分配記憶體,分配記憶體的過程由於語言句法不同而有所變化,但總是要將指標返回到記憶體的起始位置,當分配記憶體不再需要時(記憶體指標已溢位範圍),程式或執行環境應釋放記憶體。

在 C,C++ 或其它語言中,程式設計師負責釋放記憶體。有時,這是一件很困難的事情。因為你並不總是事先知道記憶體應在何時被釋放。 當在系統中沒有能夠被分配的記憶體時,可導致程式癱瘓,這種程式被稱作具有記憶體漏洞。

Java 程式語言解除了程式設計師釋放記憶體的責任。它可提供一種系統級執行緒以跟蹤每一次記憶體的分配情況。在 Java 虛擬機器的空閒週期,垃圾收集執行緒檢查並釋放那些可被釋放的記憶體。垃圾收集在 Java 技術程式的生命週期中自動進行,它解除了釋放記憶體的要求,這樣能夠有效避免記憶體漏洞和記憶體洩露(記憶體洩露就是程式執行期間,所佔用的記憶體一直往上漲,很容易造成系統資源耗盡而降低效能或崩潰)。

2.3 :提示

(1):在 Java 裡面,垃圾回收是一個自動的系統行為,程式設計師不能控制垃圾回收的功能和行為。比如垃圾回收什麼時候開始,什麼時候結束,還有到底哪些資源需要回收等,都是程式設計師不能控制的。

(2):有一些跟垃圾回收相關的方法,比如:() , 記住一點,呼叫這些方法,僅僅是在通知垃圾回收程式,至於垃圾回收程式運不執行,什麼時候執行,都是無法控制的。

(3):程式設計師可以通過設定物件為 null(後面會講到)來標示某個物件不再被需要了,這只是表示這個物件可以被回收了,並不是馬上被回收。

  3 :程式碼安全

Java 如何保證編寫的程式碼是安全可靠的呢?

(1):第一關:編寫的程式碼首先要被編譯成為 class 檔案,如果程式碼寫得有問題,編譯期間就會發現,然後提示有編譯錯誤,無法編譯通過。

(2):第二關:通過編譯關後,在類裝載的時候,還會進行類裝載檢查,把本機上的類和網路資源類相分離,在調入類的時候進行檢查,因而可以限制任何“特洛伊木馬”的應用。

(3):第三關:類裝載後,在執行前,還會進行位元組碼校驗,以判斷你的程式是安全的。

(4):第四關:如果你的程式在網路上執行,還有沙箱 (Sand Box)的保護,什麼是沙箱呢?

就是如果你的程式沒有獲得授權,只能在沙箱限定的範圍內執行,是不能夠訪問本地資源的,從而保證安全性。

如下圖所示:

學習到這裡,大家應該對 Java 有了一定的瞭解了。 現在是否想要看看 Java 程式究竟什麼樣子呢?是不是想要體會一下如何開發 Java 程式呢?下面我們先來看看如何構建 JSE 的環境,這是進行 Java 程式開發的第一步。