因為Java是
•簡單的
•物件導向的
•健壯的
•安全的
•解釋的
•與平台無關的
•多線程的
•動態語言
簡單的
Java最初是為對家用電器進行整合控制而設計的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現在三個方面:
1、Java的風格類似於C++,因而C++程式員初次接觸Java語言,就會感到很熟悉。從某種意義上講,Java語言是C及C++語言的一個變種,因此,C++程式員可以很快地掌握Java編程技術。
2、Java摒棄了C++中容易引發程式錯誤的一些特性,如指標、結構、枚舉以及記憶體管理等。
3、Java提供了豐富的類庫,可以協助我們很方便的開發Java程式。
物件導向的
物件導向可以說是Java最重要的特性,所以它支援繼承、重載、多態等物件導向的特性。Java語言的設計是完全物件導向的,它不支援類似C語言那樣的面向過程的程式設計技術。
健壯的
Java致力於檢查程式在編譯和運行時的錯誤。Java也是一種強型別的語言,其類型檢查比C++還要嚴格。類型檢查協助我們檢查出許多開發早期出現的錯誤。Java自己負責記憶體管理,提供了垃圾記憶體回收機制,有效避免了C++中最頭疼的記憶體流失問題。
安全的
Java的安全性可從兩個方面得到保證。一方面,在Java語言裡,刪除了指標和釋放記憶體等C++功能,避免了非法記憶體操作。另一方面,通過Java的安全體系架構來確保Java代碼的安全性。當我們從網上下載Java代碼在本地執行時,Java的安全架構能確保惡意的代碼不能隨意訪問我們本機電腦的資源,例如:刪除檔案,訪問本網資源等操作都是被禁止的。
解釋的
Java代碼是解釋執行的,我們使用Java編譯器將Java代碼編譯成位元組碼,這是一種中間代碼,然後由Java解譯器解釋執行。而C++程式是編譯執行的,C++程式碼被編譯為本地機器指令,然後執行。
與平台無關的
Java作為一種網路語言,其原始碼被編譯成一種結構中立的中間檔案格式。只要有Java運行系統的機器都能執行這種中間代碼。Java來源程式被編譯成一種與機器無關的位元組碼格式,在Java虛擬機器上運行。
多線程的
Java語言的一個重要特性就是在語言級支援多線程的程式設計。多線程就好像我們做一張桌子,如果你一個人完成這張桌子—就好像單線程,那麼你需要先做案頭,做完案頭後,再做4個桌子腿,如果現在有5個人來做桌子—在程式中開闢5個線程,其中1個人做案頭,另外4個人分別做4個桌子腿,那麼這兩種方式效率的高低,相信大家都能區分出來。
動態
Java的動態特性是其物件導向設計方法的擴充。它允許程式動態地裝入運行過程中所需要的類,這是我們採用C++語言進行物件導向程式設計所無法實現的。在C++程式設計過程中,每當在類中增加一個執行個體變數或一個成員函數後,引用該類的所有子類都必須重新編譯,否則將導致程式崩潰。Java從以下幾個方面採取措施來解決這個問題。Java編譯器不是將對執行個體變數和成員函數的引用編譯為數值引用,而是將符號引用資訊在位元組碼中儲存下來,傳遞給解譯器,再由解譯器在完成動態串連類後,將符號引用資訊轉換為數值位移量。一個在儲存空間中產生的對象不在編譯過程中決定,而是延遲到運行時由解譯器確定。這樣,對類中的變數和方法進行更新時就不至於影響現存的代碼。解釋執行位元組碼時,這種符號資訊的尋找和轉換過程僅在一個新的名字出現時才進行一次,隨後代碼便可以全速執行。在運行時確定引用的好處是可以使用已被更新的類,而不必擔心會影響原有的代碼。如果程式串連了網路中另一系統中的某一類,該類的所有者也可以自由地對該類進行更新,而不會使任何引用該類的程式崩潰。Java還簡化了使用一個升級的或全新協議的方法。如果你的系統運行Java程式時遇到了不知怎樣處理的程式,Java能自動下載你所需要的功能程式。