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

Java應用程式的基本結構

java語言 閱讀(1.9W)

Java應用程式的基本結構有什麼呢?以下是本站小編收集整理的關於Java應用程式的基本結構的內容,歡迎閱讀學習!

Java應用程式的基本結構

因為上一次的課沒怎麼聽懂,作業也不知道怎麼做,部落格也不知道怎麼寫了,今天先寫些別的吧。

在成功地編寫、編譯並運行了第一個Java應用程式“”程式以後,我們來分析一下HelloWorld應用程式的3個主要部分。

  程式框架

public class HelloWorld()

HelloWorld是類名,類名前面要用public(公共的)和class(類)兩個詞修飾。Java程式是由類(class)組成的,一個原始檔中可以包含多個類。

  main()方法的框架

public static void main(String[] args){}

main方法是Java程式的入口,一個程式只能有一個main方法。

public static void main(String[] args)為固定用法,稱為main方法的“方法簽名”。其中,public、static、void都是關鍵字。

  填寫的程式碼

tln("HelloWorld");

tln()是Java語言自帶的功能,向控制檯輸出資訊。

  【相關閱讀】Java語言的特點

  1. 簡單

Java是一種簡單的語言。Java是在C、C++的基礎上開發的,繼承了C和C++的許多特性,但同時也取消其他許多程式語言中繁瑣的、難以理解的、不安全的內容,如指標、多重繼承等。JDK還提供了豐富的基礎類庫,具有C或C++程式設計經驗的程式設計師都會很熟悉,無需經過長時間訓練即可掌握它。

  2. 面向物件

Java是一種純面向物件的語言。Java程式的設計思路不同於C語言基於過程的程式設計思路,而是採用面向物件的思想。面向物件程式設計,具備更好的模擬現實世界環境的能力和可重用性,將待解決的現實問題概念化成一組分離的程式物件,這些物件彼此之間可以進行互動。一個物件包含了對應實體應有的資訊和訪問、改變這些資訊的方法。通過這種設計方式,使所設計出來的程式更易於改進、擴充套件、維護和重用。Java語言提供類、介面和繼承等原語。為了簡單起見,Java只支援類之間的單繼承,但支援介面之間的多繼承,並支援類與介面間的實現機制,關鍵字為implements。Java語言全面支援動態繫結,而C++ 語言只對虛擬函式使用動態繫結。

  3. 分散式

Java是一種分散式的語言。傳統的基於C/S(客戶端/伺服器)架構的程式,均採用客戶端向伺服器提出服務請求,伺服器再根據要求執行適當的程式並將結果返回,所以伺服器負荷較重。Java採用Java虛擬機器架構,可將許多工作直接交由終端處理,資料因此也可以分散式處理。此外,Java類庫的運用,大大減輕了網路傳輸的負荷;Java類庫包含了支援HTTP和FTP 等基於TCP/IP協議的子庫,Java應用程式可憑藉URL地址開啟並訪問網路上的物件,其訪問方式與訪問本地檔案系統幾乎完全相同。網路環境是Java大顯身手和進一步發展的地方。

  4. 高效解釋執行

Java是高效解釋執行的語言。高階語言程式必須轉換為機器語言程式才能執行,但不同的計算機系統所使用的機器語言不同。Java為了實現“一次編譯,隨處執行”的目標,Java 的源程式在編譯時,並不直接編譯成特定的機器語言程式,而是編譯成與系統無關的“位元組碼(Byte codes)”,由Java 虛擬機器(Java Virtual Machine,JVM )來執行,如圖1-3所示。JVM使得Java程式可以“一次編譯,隨處執行”。任何系統只有安裝了Java虛擬機器後,才可以執行Java 程式。

JVM能直接在任何機器上執行,為位元組碼提供執行環境。當JVM解釋執行Java程式時,Java 實時編譯器(Just-In-Time,JIT)會將位元組碼譯成目標平臺對應的機器語言的指令程式碼。

早先的許多嘗試解決跨平臺的方案對效能要求都很高。其他解釋執行的語言系統,如BASIC、TCL、PERL 都有無法克服的效能缺陷。然而,Java 卻可以在非常低檔的CPU上順暢執行,這是因為Java位元組碼是經過精心設計的,能夠直接使用JIT編譯技術將位元組碼轉換成高效能的本機程式碼。事實上,Java的執行速度隨著JIT編譯器技術的發展已接近於C++。因而“高效且跨平臺”對Java 來說已不再矛盾。

  5. 健壯

Java是健壯的語言。為了更好地理解Java的健壯性,先討論一下在傳統程式設計環境下程式設計失敗的主要原因:記憶體管理錯誤和誤操作引起的異常或執行時異常。

在傳統的程式設計環境下,記憶體管理是一項困難、乏味的工作。例如,在C或C++ 中,必須手工分配、釋放所有的動態記憶體。如果忘記釋放原來分配的記憶體,或是釋放了其他程式正在使用的記憶體時,就會出錯。在傳統的程式設計環境下,異常情況可能經常由“被零除”、“Null指標操作”、“檔案未找到”等原因引起,必須用既繁瑣又難理解的一大堆指令來進行管理。

對此,Java 通過自行管理記憶體分配和釋放,從根本上消除了有關記憶體的問題。Java提供垃圾收集器,可自動收集閒置物件佔用的記憶體。通過提供面向物件的異常處理機制來解決異常處理的問題。通過型別檢查、Null指標檢測、陣列邊界檢測等方法,在開發早期發現程式錯誤。

  6. 安全

Java是安全的網路程式語言。Java常被用於網路環境中,為此,Java提供了一系列的安全機制以防惡意程式碼攻擊,確保系統安全。Java的安全機制分為多級,包括Java 語言本身的安全性設計以及嚴格的編譯檢查、執行檢查和網路介面級的安全檢查。

Java語言是強型別語言,而且每種型別都要求嚴格定義。首先,每個變數、表示式都有型別。其次,所有的數值傳遞,不管是直接的、還是通過方法呼叫經由引數傳遞,都要進行型別相容性檢查。有些語言沒有自動進行資料型別相容性檢查或對衝突的型別進行轉換的機制;Java編譯器對所有的表示式和引數都要進行型別相容性的檢查以確保型別是相容的。任何型別的不匹配都是錯誤的,在編譯完成之前,錯誤必須全部被糾正。此外,Java 摒棄指標型別和資料型別的隱式轉換,從而對記憶體訪問進行了嚴格的限制。在編譯期間,Java 編譯器並不分配記憶體,而是推遲到執行時由直譯器決定,這樣程式設計人員就無法通過指標來非法訪問記憶體。在執行期間,Java的執行環境提供了四級安全保障機制:位元組碼校驗器、類裝載器、執行時記憶體佈局和檔案的訪問限制。在網路介面級,使用者可按自己的需要來設定網路訪問許可權。

另外,Java的未來版本將採用公開金鑰法以及其他加密技術,來核實從網路上傳輸過來的程式碼的源主機及該程式碼的完整性。

  7. 結構中立

Java是結構中立的語言。Java的設計目標是要支援網路應用程式。一般而言,網路是由許多不同的系統構成,包括各種CPU與作業系統結構。為了讓Java應用程式能夠在網路上任何地方執行,其編譯器會產生一種具備結構中立性的物件檔案格式即Java位元組碼檔案。Java位元組碼可在任何安裝了Java虛擬機器的平臺上執行。

  8. 可移植

Java開發的程式是可移植的。結構中立是確保程式可移植的必要條件,此外還需很多其他條件的配合。Java 在可移植性方面做了許多工作。Java語言規範中也沒有任何“同具體實現相關”的內容,解決了所有可能會影響到Java可移植性方面的問題。如在Windows 3.1中整數(Integer)為16位,在Windows 95中整數為32位,在DEC Alpha中整數為64位,在Intel 486中為32位,不同的作業系統和CPU對資料型別及長度都作了不同的定義,給程式的可移植性帶來了一定的難度。Java通過定義獨立於平臺的基本資料型別及其運算,使Java資料得以在任何硬體平臺上保持一致。事實上,幾乎目前使用的所有CPU都能支援以上資料型別,都支援8~64位整數格式的補碼運算和單/雙精度浮點運算。Java語言的基本資料型別及其表示方式如表1-1所示。

  9. 高效率

Java是高效率的語言。每一次的版本更新,Java在效能上均做出了改進。在歷經數個版本變更後,Java號稱可以與C/C++擁有同樣甚至更好的'執行效能。如果直譯器速度不慢,Java可以在執行時直接將目的碼翻譯成機器指令,來用JVM一秒鐘內可呼叫 300 000個過程,與C/C++不相上下。

  10. 多執行緒

Java是支援多執行緒的語言。多執行緒是一種應用程式設計方法。執行緒是一大程序裡分出來的,小的、獨立的程序,使得在一個程式裡可同時執行多個小任務。多執行緒帶來的好處是具有更好的互動效能和實時控制性能。但採用傳統的程式設計語言(如:C/C++)實現多執行緒程式並非易事。Java實現了多執行緒技術,提供了簡便的實現多執行緒的方法,並擁有一組高複雜性的同步機制。

  11. 動態

Java 語言具有動態特性。Java 動態特性是其面向物件設計方法的擴充套件,允許程式動態地裝入執行過程中所需的類,這是 C++ 進行面向物件程式設計所無法實現的。C++ 程式設計過程中,每當在類中增加一個例項變數或一種成員函式後,引用該類的所有子類都必須重新編譯,否則將導致程式崩潰。Java採取如下措施來解決此類問題。

(1)Java編譯器不是將對例項變數和成員函式的引用編譯為數值引用,而是將符號引用資訊在位元組碼中儲存後傳遞給直譯器,再由直譯器在完成動態連線類後,將符號引用資訊轉換為資料偏移量。儲存器生成的物件不在編譯過程中決定,而是延遲到執行時由直譯器確定。這樣,對類中變數和方法進行更新時就不至於影響現存的程式碼。解釋執行位元組碼時,這種符號資訊的查詢和轉換過程僅在一個新的名字出現時才進行一次,隨後程式碼便可以全速執行。

(2)在執行時確定引用的好處是可以使用已被更新的類,而不必擔心會影響原有的程式碼。如果程式連線了網路中另一系統的某一類,該類的所有者也可以自由地對該類進行更新,而不會使任何引用該類的程式崩潰。

(3)Java還簡化了使用一個升級的或全新的協議的方法。如果系統執行 Java 程式時遇到了不知怎樣處理的程式,沒關係, Java 能自動下載你所需要的功能程式。

Java是一種比C/C++更具動態特性的語言。在設計上強調為執行中的運算環境提供支援。Java是在執行時為模組與模組之間建立連線,並能夠更直接地運用面向物件設計體系。程式庫可以自由地增加新方法和例項變數,而不會對它們的客戶產生任何影響。