- Java應用程序基本結構 推薦度:
- 相關(guān)推薦
Java應用程序的基本結構
Java應用程序的基本結構有什么呢?以下是百分網(wǎng)小編收集整理的關(guān)于Java應用程序的基本結構的內容,歡迎閱讀學(xué)習!
因為上一次的課沒(méi)怎么聽(tīng)懂,作業(yè)也不知道怎么做,博客也不知道怎么寫(xiě)了,今天先寫(xiě)些別的吧。
在成功地編寫(xiě)、編譯并運行了第一個(gè)Java應用程序“HelloWorld.java”程序以后,我們來(lái)分析一下HelloWorld應用程序的3個(gè)主要部分。
程序框架
public class HelloWorld()
HelloWorld是類(lèi)名,類(lèi)名前面要用public(公共的)和class(類(lèi))兩個(gè)詞修飾。Java程序是由類(lèi)(class)組成的,一個(gè)源文件中可以包含多個(gè)類(lèi)。
main()方法的框架
public static void main(String[] args){}
main方法是Java程序的入口,一個(gè)程序只能有一個(gè)main方法。
public static void main(String[] args)為固定用法,稱(chēng)為main方法的“方法簽名”。其中,public、static、void都是關(guān)鍵字。
填寫(xiě)的代碼
System.out.println("HelloWorld");
System.out.println()是Java語(yǔ)言自帶的功能,向控制臺輸出信息。
【相關(guān)閱讀】Java語(yǔ)言的特點(diǎn)
1. 簡(jiǎn)單
Java是一種簡(jiǎn)單的語(yǔ)言。Java是在C、C++的基礎上開(kāi)發(fā)的,繼承了C和C++的許多特性,但同時(shí)也取消其他許多編程語(yǔ)言中繁瑣的、難以理解的、不安全的內容,如指針、多重繼承等。JDK還提供了豐富的基礎類(lèi)庫,具有C或C++編程經(jīng)驗的程序員都會(huì )很熟悉,無(wú)需經(jīng)過(guò)長(cháng)時(shí)間訓練即可掌握它。
2. 面向對象
Java是一種純面向對象的語(yǔ)言。Java程序的設計思路不同于C語(yǔ)言基于過(guò)程的程序設計思路,而是采用面向對象的思想。面向對象程序設計,具備更好的模擬現實(shí)世界環(huán)境的能力和可重用性,將待解決的現實(shí)問(wèn)題概念化成一組分離的程序對象,這些對象彼此之間可以進(jìn)行交互。一個(gè)對象包含了對應實(shí)體應有的信息和訪(fǎng)問(wèn)、改變這些信息的方法。通過(guò)這種設計方式,使所設計出來(lái)的程序更易于改進(jìn)、擴展、維護和重用。Java語(yǔ)言提供類(lèi)、接口和繼承等原語(yǔ)。為了簡(jiǎn)單起見(jiàn),Java只支持類(lèi)之間的單繼承,但支持接口之間的多繼承,并支持類(lèi)與接口間的實(shí)現機制,關(guān)鍵字為implements。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++ 語(yǔ)言只對虛函數使用動(dòng)態(tài)綁定。
3. 分布式
Java是一種分布式的語(yǔ)言。傳統的基于C/S(客戶(hù)端/服務(wù)器)架構的程序,均采用客戶(hù)端向服務(wù)器提出服務(wù)請求,服務(wù)器再根據要求執行適當的程序并將結果返回,所以服務(wù)器負荷較重。Java采用Java虛擬機架構,可將許多工作直接交由終端處理,數據因此也可以分布式處理。此外,Java類(lèi)庫的運用,大大減輕了網(wǎng)絡(luò )傳輸的負荷;Java類(lèi)庫包含了支持HTTP和FTP 等基于TCP/IP協(xié)議的子庫,Java應用程序可憑借URL地址打開(kāi)并訪(fǎng)問(wèn)網(wǎng)絡(luò )上的對象,其訪(fǎng)問(wèn)方式與訪(fǎng)問(wèn)本地文件系統幾乎完全相同。網(wǎng)絡(luò )環(huán)境是Java大顯身手和進(jìn)一步發(fā)展的地方。
4. 高效解釋執行
Java是高效解釋執行的語(yǔ)言。高級語(yǔ)言程序必須轉換為機器語(yǔ)言程序才能執行,但不同的計算機系統所使用的機器語(yǔ)言不同。Java為了實(shí)現“一次編譯,隨處運行”的目標,Java 的源程序在編譯時(shí),并不直接編譯成特定的機器語(yǔ)言程序,而是編譯成與系統無(wú)關(guān)的“字節碼(Byte codes)”,由Java 虛擬機(Java Virtual Machine,JVM )來(lái)執行,如圖1-3所示。JVM使得Java程序可以“一次編譯,隨處運行”。任何系統只有安裝了Java虛擬機后,才可以執行Java 程序。
JVM能直接在任何機器上執行,為字節碼提供運行環(huán)境。當JVM解釋執行Java程序時(shí),Java 實(shí)時(shí)編譯器(Just-In-Time,JIT)會(huì )將字節碼譯成目標平臺對應的機器語(yǔ)言的指令代碼。
早先的許多嘗試解決跨平臺的方案對性能要求都很高。其他解釋執行的語(yǔ)言系統,如BASIC、TCL、PERL 都有無(wú)法克服的性能缺陷。然而,Java 卻可以在非常低檔的CPU上順暢運行,這是因為Java字節碼是經(jīng)過(guò)精心設計的,能夠直接使用JIT編譯技術(shù)將字節碼轉換成高性能的本機代碼。事實(shí)上,Java的運行速度隨著(zhù)JIT編譯器技術(shù)的發(fā)展已接近于C++。因而“高效且跨平臺”對Java 來(lái)說(shuō)已不再矛盾。
5. 健壯
Java是健壯的語(yǔ)言。為了更好地理解Java的健壯性,先討論一下在傳統編程環(huán)境下程序設計失敗的主要原因:內存管理錯誤和誤操作引起的異;蜻\行時(shí)異常。
在傳統的編程環(huán)境下,內存管理是一項困難、乏味的工作。例如,在C或C++ 中,必須手工分配、釋放所有的動(dòng)態(tài)內存。如果忘記釋放原來(lái)分配的內存,或是釋放了其他程序正在使用的內存時(shí),就會(huì )出錯。在傳統的編程環(huán)境下,異常情況可能經(jīng)常由“被零除”、“Null指針操作”、“文件未找到”等原因引起,必須用既繁瑣又難理解的一大堆指令來(lái)進(jìn)行管理。
對此,Java 通過(guò)自行管理內存分配和釋放,從根本上消除了有關(guān)內存的問(wèn)題。Java提供垃圾收集器,可自動(dòng)收集閑置對象占用的內存。通過(guò)提供面向對象的異常處理機制來(lái)解決異常處理的問(wèn)題。通過(guò)類(lèi)型檢查、Null指針檢測、數組邊界檢測等方法,在開(kāi)發(fā)早期發(fā)現程序錯誤。
6. 安全
Java是安全的網(wǎng)絡(luò )編程語(yǔ)言。Java常被用于網(wǎng)絡(luò )環(huán)境中,為此,Java提供了一系列的安全機制以防惡意代碼攻擊,確保系統安全。Java的安全機制分為多級,包括Java 語(yǔ)言本身的安全性設計以及嚴格的編譯檢查、運行檢查和網(wǎng)絡(luò )接口級的安全檢查。
Java語(yǔ)言是強類(lèi)型語(yǔ)言,而且每種類(lèi)型都要求嚴格定義。首先,每個(gè)變量、表達式都有類(lèi)型。其次,所有的數值傳遞,不管是直接的、還是通過(guò)方法調用經(jīng)由參數傳遞,都要進(jìn)行類(lèi)型相容性檢查。有些語(yǔ)言沒(méi)有自動(dòng)進(jìn)行數據類(lèi)型相容性檢查或對沖突的類(lèi)型進(jìn)行轉換的機制;Java編譯器對所有的表達式和參數都要進(jìn)行類(lèi)型相容性的檢查以確保類(lèi)型是兼容的。任何類(lèi)型的不匹配都是錯誤的,在編譯完成之前,錯誤必須全部被糾正。此外,Java 摒棄指針類(lèi)型和數據類(lèi)型的隱式轉換,從而對內存訪(fǎng)問(wèn)進(jìn)行了嚴格的限制。在編譯期間,Java 編譯器并不分配內存,而是推遲到運行時(shí)由解釋器決定,這樣編程人員就無(wú)法通過(guò)指針來(lái)非法訪(fǎng)問(wèn)內存。在運行期間,Java的運行環(huán)境提供了四級安全保障機制:字節碼校驗器、類(lèi)裝載器、運行時(shí)內存布局和文件的訪(fǎng)問(wèn)限制。在網(wǎng)絡(luò )接口級,用戶(hù)可按自己的需要來(lái)設置網(wǎng)絡(luò )訪(fǎng)問(wèn)權限。
另外,Java的未來(lái)版本將采用公開(kāi)密鑰法以及其他加密技術(shù),來(lái)核實(shí)從網(wǎng)絡(luò )上傳輸過(guò)來(lái)的代碼的源主機及該代碼的完整性。
7. 結構中立
Java是結構中立的語(yǔ)言。Java的設計目標是要支持網(wǎng)絡(luò )應用程序。一般而言,網(wǎng)絡(luò )是由許多不同的系統構成,包括各種CPU與操作系統結構。為了讓Java應用程序能夠在網(wǎng)絡(luò )上任何地方執行,其編譯器會(huì )產(chǎn)生一種具備結構中立性的對象文件格式即Java字節碼文件。Java字節碼可在任何安裝了Java虛擬機的平臺上運行。
8. 可移植
Java開(kāi)發(fā)的程序是可移植的。結構中立是確保程序可移植的必要條件,此外還需很多其他條件的配合。Java 在可移植性方面做了許多工作。Java語(yǔ)言規范中也沒(méi)有任何“同具體實(shí)現相關(guān)”的內容,解決了所有可能會(huì )影響到Java可移植性方面的問(wèn)題。如在Windows 3.1中整數(Integer)為16位,在Windows 95中整數為32位,在DEC Alpha中整數為64位,在Intel 486中為32位,不同的操作系統和CPU對數據類(lèi)型及長(cháng)度都作了不同的定義,給程序的可移植性帶來(lái)了一定的難度。Java通過(guò)定義獨立于平臺的基本數據類(lèi)型及其運算,使Java數據得以在任何硬件平臺上保持一致。事實(shí)上,幾乎目前使用的所有CPU都能支持以上數據類(lèi)型,都支持8~64位整數格式的補碼運算和單/雙精度浮點(diǎn)運算。Java語(yǔ)言的基本數據類(lèi)型及其表示方式如表1-1所示。
9. 高效率
Java是高效率的語(yǔ)言。每一次的版本更新,Java在性能上均做出了改進(jìn)。在歷經(jīng)數個(gè)版本變更后,Java號稱(chēng)可以與C/C++擁有同樣甚至更好的運行性能。如果解釋器速度不慢,Java可以在運行時(shí)直接將目標代碼翻譯成機器指令,來(lái)用JVM一秒鐘內可調用 300 000個(gè)過(guò)程,與C/C++不相上下。
10. 多線(xiàn)程
Java是支持多線(xiàn)程的語(yǔ)言。多線(xiàn)程是一種應用程序設計方法。線(xiàn)程是一大進(jìn)程里分出來(lái)的,小的、獨立的進(jìn)程,使得在一個(gè)程序里可同時(shí)執行多個(gè)小任務(wù)。多線(xiàn)程帶來(lái)的好處是具有更好的交互性能和實(shí)時(shí)控制性能。但采用傳統的程序設計語(yǔ)言(如:C/C++)實(shí)現多線(xiàn)程程序并非易事。Java實(shí)現了多線(xiàn)程技術(shù),提供了簡(jiǎn)便的實(shí)現多線(xiàn)程的方法,并擁有一組高復雜性的同步機制。
11. 動(dòng)態(tài)
Java 語(yǔ)言具有動(dòng)態(tài)特性。Java 動(dòng)態(tài)特性是其面向對象設計方法的擴展,允許程序動(dòng)態(tài)地裝入運行過(guò)程中所需的類(lèi),這是 C++ 進(jìn)行面向對象程序設計所無(wú)法實(shí)現的。C++ 程序設計過(guò)程中,每當在類(lèi)中增加一個(gè)實(shí)例變量或一種成員函數后,引用該類(lèi)的所有子類(lèi)都必須重新編譯,否則將導致程序崩潰。Java采取如下措施來(lái)解決此類(lèi)問(wèn)題。
(1)Java編譯器不是將對實(shí)例變量和成員函數的引用編譯為數值引用,而是將符號引用信息在字節碼中保存后傳遞給解釋器,再由解釋器在完成動(dòng)態(tài)連接類(lèi)后,將符號引用信息轉換為數據偏移量。存儲器生成的對象不在編譯過(guò)程中決定,而是延遲到運行時(shí)由解釋器確定。這樣,對類(lèi)中變量和方法進(jìn)行更新時(shí)就不至于影響現存的代碼。解釋執行字節碼時(shí),這種符號信息的查找和轉換過(guò)程僅在一個(gè)新的名字出現時(shí)才進(jìn)行一次,隨后代碼便可以全速執行。
(2)在運行時(shí)確定引用的好處是可以使用已被更新的類(lèi),而不必擔心會(huì )影響原有的代碼。如果程序連接了網(wǎng)絡(luò )中另一系統的某一類(lèi),該類(lèi)的所有者也可以自由地對該類(lèi)進(jìn)行更新,而不會(huì )使任何引用該類(lèi)的程序崩潰。
(3)Java還簡(jiǎn)化了使用一個(gè)升級的或全新的協(xié)議的方法。如果系統運行 Java 程序時(shí)遇到了不知怎樣處理的程序,沒(méi)關(guān)系, Java 能自動(dòng)下載你所需要的功能程序。
Java是一種比C/C++更具動(dòng)態(tài)特性的語(yǔ)言。在設計上強調為運行中的運算環(huán)境提供支持。Java是在運行時(shí)為模塊與模塊之間建立連接,并能夠更直接地運用面向對象設計體系。程序庫可以自由地增加新方法和實(shí)例變量,而不會(huì )對它們的客戶(hù)產(chǎn)生任何影響。
【Java應用程序的基本結構】相關(guān)文章:
Java應用程序基本結構08-05
java應用程序的基本框架09-13
Java 的分支結構10-27
Java語(yǔ)言的繼承結構06-21
Java 循環(huán)結構介紹08-13
Java 數據結構10-10
細胞的基本結構07-06
Java基本語(yǔ)法—java標識符11-12
java代碼的基本要點(diǎn)08-01