- JavaWeb從入門到精通(視頻實戰版)
- 常倬林等編著
- 3522字
- 2018-12-31 19:35:52
1.1 Java語言簡介
Java是一種跨平臺的面向對象語言,由Sun公司于1995年推出,自問世以來受到越來越多開發者的喜愛。在Java語言出現以前,很難想象在Windows環境下編寫的程序可以不加修改就在Linux系統中運行,因為計算機硬件只識別機器指令,而不同操作系統中的機器指令是不同的。所以,要把一種平臺下的程序遷移到另一個平臺,必須要針對目標平臺進行修改,如果想要程序運行在不同的操作系統,就要求程序設計語言能夠跨平臺,可以跨越不同的硬件、軟件環境,而Java語言就能夠滿足這種要求。
Java語言的目標就是為了滿足在復雜的網絡環境中開發軟件。在這種復雜的網絡環境中,充滿著各種各樣的硬件平臺和不同的軟件環境,而Java語言就是針對這種復雜的平臺環境設計的。使用Java語言,可以開發出適應這種復雜網絡環境的應用系統。
1.1.1 Java語言概述
Java是一種優秀的面向對象語言,其有著健壯的安全性設計。Java的結構是中立的,可以移植到不同的系統平臺。優秀的多線程設計也是Java語言的一大特色。但是Java語言的最大優勢還是其對多種操作系統平臺的支持,這種特性是其他編程語言所無法比擬的。
Java最初是Sun公司為消費電子產品設計的一種通用環境,最初的目的是開發一種與平臺無關的編程語言。這種技術在開始的時候并沒有太大的用武之地,在網絡出現以后,由于網絡軟硬件環境的復雜性,常見的編程語言逐漸不能適應這種環境的要求,而Java語言平臺無關性的特性正好適應了網絡的這個潮流。所以Java語言在網絡出現以后得到突飛猛進的發展。
目前,Java語言最大的用途就是Web應用的開發,使用Java語言可以不用考慮系統平臺的差異,在一種系統下開發的應用系統,可以不加任何修改就能運行在另一種不同的系統中。例如在目前的Web應用開發中,很多用戶會選擇使用Linux或者是UNIX作為服務器環境,而開發人員一般情況下會選擇在Windows平臺下開發,因為在Windows平臺中,開發環境的效率要相對高些。在這種情況下,就可以使用Java語言,由于Java語言是跨平臺的,所以在Windows中開發出的系統,可以直接部署在Linux或者是UNIX的服務器系統中,這就是使用Java語言的便利之處。
1.1.2 Java語言的特性和優勢
在目前的軟件開發中,尤其是應用系統的開發中,Java語言成為大部分開發人員的首選,經常會有用戶自己提出要使用Java語言進行開發,可見Java語言的發展已經深入人心。Java語言之所以如此受歡迎,是由其自身的優點決定的。以下簡單介紹Java語言的特性。
(1)平臺無關性
平臺無關性是Java語言最大的優勢。在Java中,并不是直接把源文件編譯成硬件可以識別的機器指令,Java的編譯器把Java源代碼編譯為字節碼文件,這種字節碼文件就是編譯Java源程序時得到的class類文件。Java語言的跨平臺主要是指字節碼文件可以在任何軟硬件平臺上運行,而執行這種類文件的就是Java虛擬機。Java虛擬機是軟件模擬出的計算機,可以執行編譯Java源文件得到的中間碼文件,而各種平臺的差異就是由Java虛擬機來處理的,由Java虛擬機把中間碼文件解釋成目標平臺可以識別的機器指令,從而實現了在各種平臺中運行Java程序的目的。Java語言中針對不同的平臺環境提供了不同的Java虛擬機,例如在Sun的官方網站中就提供了Windows、Linux和Solaris等各種版本Java虛擬機的下載。
(2)安全性
在C/C++中,指針的使用是一個高級話題,如果熟練掌握指針可以給程序的開發帶來很大的方便。但是如果指針使用不當,就有可能帶來系統資源泄漏,更嚴重的是錯誤的指針操作有可能非法訪問系統文件的地址空間,從而給系統帶來災難性的破壞。所以在C/C++中,使用指針的時候需要非常小心。
Java語言放棄了指針操作,在Java中沒有顯式提供指針的操作,不提供對存儲器空間直接訪問的方法,所有的存取過程都由Java語言自身來處理,這樣就可以保證系統的地址空間不會被有意或者無意破壞。而且經過這樣的處理,也可以避免系統資源的泄漏,例如在C/C++中,如果指針不及時釋放,就會占用系統內存空間,大量的指針不及時釋放就有可能耗盡可用的內存空間。在Java中就不用擔心這樣的問題,Java提供了一套有效的資源回收策略,會自動回收不再使用的系統資源,從而保證了系統的安全性和穩定性。
另外,Java虛擬機在運行字節碼文件的時候,會把Java程序的代碼和數據限制在具體的內存空間內,不允許Java程序訪問指定內存地址之外的空間。這樣就可以保證Java程序不會破壞系統的內存空間,從而保證系統的安全性。
(3)面向對象
面向對象是現在軟件開發中的主流技術,Java同樣吸取了各種面向對象語言的優點,從而更加徹底地實現了面向對象的技術。在Java程序中,基本所有的操作都是在對象的基礎上實現的。為了實現模塊化和信息的隱藏,Java語言采用了功能代碼封裝的處理,Java語言對繼承性的實現使功能代碼可以重復利用,用戶可以把具體的功能代碼封裝成自定義的類,從而實現對代碼的重用。
C++是一種經典的面向對象的語言,Java語言繼承了C++中面向對象的理論,但是簡化了這種面向對象的技術,去掉了一些復雜的技術,例如多繼承、運算符的重載等功能。經過這樣的處理,Java中的面向對象技術變得簡單、容易掌握,同時保留著面向對象中核心的技術,可以使用戶方便地享受面向對象技術帶來的便利。
(4)異常處理
在Java中提供異常處理的策略。在Java程序的開發中,可以對各種異常和錯誤進行處理。這些錯誤包括程序在編譯和運行階段的錯誤和異常,例如空指針異常、數組越界異常、類型錯誤等。Java中的異常處理可以幫助用戶定位、處理各種錯誤,從而大大縮短了Java應用程序的開發周期。而且,這種異常策略,可以捕捉到程序中的所有異常,針對不同的異常,用戶可以采取具體的處理方法,從而保證了應用程序在用戶的控制下運行,因此也保證了程序的穩定和健壯。
1.1.3 Java語言的發展現狀
Java語言并不是為網絡環境設計的,用戶可以使用Java語言來編寫獨立的桌面應用程序。在桌面應用程序這個領域,Java已經被各大廠商接受,例如Oracle數據庫、Borland的JBuilder開發環境、Eclipse開發環境等工具都是使用Java語言編寫的。這些軟件產品的性能都是非常優秀的,可見使用Java同樣可以編寫出功能強大的應用軟件。而且,如果用戶需要開發跨平臺運行的軟件,Java就成了唯一的選擇,跨平臺的需要也是各大廠商選擇使用Java開發桌面應用程序的原因之一。
雖然說Java語言并不是為網絡環境設計的,但是Java語言目前還是主要被用于網絡環境中,尤其是在服務器端的程序設計中,Java語言的地位是其他動態語言所無法替代的。在B/S開發結構盛行的今天,Java語言的地位更是舉足輕重。例如,目前各種信息管理系統都采用B/S進行開發,在J2EE中,提供了優秀的B/S應用程序的解決方案。再加上Java語言跨平臺、簡單易用等特性,用戶自然會選擇Java語言進行開發。事實上,在服務器端的程序開發中,Java所占的比例份額是占絕對優勢的。
1.1.4 Java語言的發展前景
隨著網絡技術的急速發展,Java語言必然會取得更大的發展,在這個復雜的網絡環境中,Java語言有著廣闊的前景。例如在如下幾種開發需求中,Java語言都有著很大的發展前景。
(1)跨平臺的應用軟件開發
隨著Linux、UNIX等操作系統逐漸被用戶接受,Windows的地位正面臨著巨大的挑戰,同時各大軟件廠商也必須應對這樣的變化。在這種情況下,需要兼顧各種操作系統用戶的需要,當然可以選擇針對不同操作系統開發出不同的軟件版本。但是如果軟件產品的規模超大,這樣的做法就不太合適,這時候就需要用到Java。雖然桌面應用軟件的開發不是Java的強項,但是Java語言跨平臺的特性彌補了在這方面的不足。軟件廠商采用Java語言進行開發,只需要開發一個版本就可以運行在不同的操作系統環境中,這就大大降低了重復開發的成本和時間。
所以,Java語言在跨平臺應用軟件開發領域的前景還是非常廣闊的。
(2)企業信息化解決方案
企業信息化是目前的一大潮流,而且在目前的信息化解決方案中,基本上采用的都是B/S架構,這樣的架構不僅方便應用程序的部署,而且節省了界面程序開發的成本。在客戶端只需要一個瀏覽器即可,所有的功能代碼都在服務器端實現。
J2EE是Java的企業版本,是Sun公司針對企業信息化提出的一套技術解決方案。使用這些技術,可以非常方便地實現企業信息化的需求,而且在近幾年中,J2EE正以飛快的速度向前發展,相信在未來幾年中,Java在企業信息化建設中會占到更大的比重。
(3)嵌入設備
J2ME是Java針對嵌入設備(例如手機)設計的。在J2ME出現之前,在嵌入設備中編程只能選擇C/C++,這樣底層的編程是相當復雜的。當J2ME技術問世以后,就可以使Java語言十分方便地開發嵌入設備中的應用軟件。目前,J2ME在手機中使用得比較多,各大手機廠商推出的手機產品中基本都會內置支持Java的功能。所以,J2ME的使用也會越來越廣泛。
Java語言不斷地在發展和完善,現在各大廠商都在努力推動Java技術的發展。在這些廠商中間,Sun、IBM、Sybase等做得都相當出色,而且在Java領域中,還有開源力量的支持,例如Apache、JBoss等,這些開發力量給Java的發展帶來巨大的推動作用,很多優秀的Java框架都是由這些開源力量開發維護的。
在各方面力量的努力下,Java語言會越來越趨于完美,使用Java開發會給用戶帶來更大的樂趣和更高的效率。
- 深入淺出WPF
- HTML5 移動Web開發從入門到精通(微課精編版)
- Django:Web Development with Python
- Mastering Julia
- 嚴密系統設計:方法、趨勢與挑戰
- Symfony2 Essentials
- 學習正則表達式
- C#程序設計教程(第3版)
- Learning Material Design
- Creating Data Stories with Tableau Public
- R Data Science Essentials
- Oracle實用教程
- Getting Started with React VR
- 從零開始學Unity游戲開發:場景+角色+腳本+交互+體驗+效果+發布
- 新手學ASP.NET 3.5網絡開發