? 本文主要根據Java的誕生,Java的特性 進行描述。有錯誤,歡迎指正。
?
? 一:Java的誕生
Java 是從1995年的7月開始在計算機業界就受到了高度關注,特別是在Internet和多媒體(Multimedia)相關產品類方面。
Java為何有如此這么大的魅力?
Java是一種軟件技術
是一種由美國SUN計算機公司(Sun Microsystems, Inc.)所研究而成的語言
是一種為 Internet發展的計算機語言
是一種使網頁(Web Page)產生生動活潑畫面的語言
是一種使網頁(Web Page)由靜態(Static)轉變為動態(Dynamic)的語言
是一種語言,用以產生「小應用程序(Applet(s))」
是一種簡化的C++語言 是一種安全的語言,具有阻絕計算機病毒傳輸的功能
是一種將安全性(Security)列為第一優先考慮的語言
是一種使用者不需花費很多時間學習的語言
是一種突破用戶端機器環境和CPU結構的語言
是一種「寫一次,即可在任何機器上執行(Write OnceRun Anywhere)」的語言是有史以來
,第一套允使用者將應用程序(Applications)通過Internet從遠端的服務器(Remote Server)傳輸到本地端的機器上(LocalMachine)并執行
是一種應用程序提供者不需要知道使用者的計算機硬件(如:Sun, Intel, 或MAC等)與軟件(如:SW- UNIX, MAC O/S, Windows, 或NT等)環境的語言(Kestenbaum, 1995)。
? 二:Java的特性
?? Java是一種簡單,健壯,多態,安全,網絡,面向對象,搞性能的程序語言。
?
?? 簡單的 (Simple)
?C/C++學習復雜,程序運行需要在各個平臺運行。而Java是一次編譯到處運行的。
?Java是在C/C++的基礎上面產生的,且同時屏蔽了C/C++的一些
指針
(Pointer)
、運算符重載
(Operator Overloading)
和多重繼承
(Multiple Inheritance)
的特性。
?
? 面向對象的 (Object-Oriented)
面向對象分析 (Object-Oriented Analysis) 是分析問題的一種方式,面向對象設計 (Object-Oriented Design) 是使用面向對象的思考方式來設計問題的解決方案。但是,要了解什么是面向對象,以及學會使用面向對象的方式進行設計與解決問題,并不是一件簡單 的事情,事實上讓您了解面向對象正是這本書的目標之一。
?
?? 網絡的 (Network-Savvy)
??? Java本身是通過網絡而產生的,且好多功能與網絡有關,從Applet,(簡化的)Socket,(交互式的)Jsp/Servlet網絡程序到今天的Web Service等等,其實Java也正是網絡使用非常的高。EJB現在使用的相對較少。
? 編譯的 (Interpreted)
程序在一個平臺上要能夠運行,必須先編譯為該平臺所能理解的原始機器語言 (Native Machine Instructions) ,但最大的問題在于每個平臺所認識的機器語言各不相同。例如 Windows 操作系統認識的機器語言就與 Linux 認識的不相同,專為 Windows 操作系統所編寫并編譯好的程 序,并無法直接拿來在 Linux 操作系統上運行。
為了解決在不同平臺間運行程序的問題, Java 的程序在進行編譯時,并不直接編譯為與平臺相對應的原始機器語言,而是編譯為與系統無關的“字節 碼” (Bytecodes) 。為了要運行 Java 程序,運行的平臺上必須安裝有 JVM( Java Virtual Machine) , JVM 等于是為 Java 程序所虛擬的環境。當運行 Java 程序時, Java 實時編譯器 (Just In Time Compiler , JIT) 會將字節碼編譯為目標平臺所接受的原始機器語言,通過 JVM 使得 Java 程序在不同平臺上都能運行的目的得以實現,如圖 1-2 所示。
圖 1-2? JVM 將 Java 字節碼轉換為與平 臺相對應的機器語言
????????
良葛格的話 匣子:
“平臺” (Platform) 一詞并沒有較嚴謹的定 義,在計算機的領域中,平臺有時指的是硬件,有時指的是作用于硬件之上的軟件系統,有時則指硬件加上軟件,這里的平臺指的是“操作系統”。由于不同的硬件 會運行不同的操作系統,所以這里對平臺的定義也就是硬件加上軟件。
您可以在 Google(http://www.google.com/) 上搜尋 define:platform 來查詢網絡上各種對平臺的定義。
?
?? 健壯的 (Robust)
Java 將 C/C++ 中一些功能強大但不容易掌握的功能去除了。以指針 (Point) 功能為例,即使是有經驗的開發 人員在使用指針功能時也得小心翼翼,避免編寫出使程序崩潰 (Crash) 的錯誤,諸如此類的功能在 Java 中被去除,為的是讓 Java 在使用時更為簡單,編寫出來的程序更為健壯。
舍棄了 C/C++ 的一些特性曾使得許多開發人員質疑沒有了 C/C++ 的這些特性, Java 還能開發什么軟件?但從 Java 正式提出至今 10 年來已經證明, Java 確實適用于開發各個領域的軟件,而且擁有廣大的網絡資源。
? 安全的 (Secure)
Java 加入了垃圾回收 (Garbage Collection) 機制,讓開發人員無需擔心對象資源的回收問題,異 常 (Exception) 處理架構讓開發人員可以掌握程序中各種突發的異常狀況。另外,像 synchronized 、 final 等存取關鍵詞的使用,目的都在于加強 Java 程序的安全性。 ?
可移植的 (Portable)
要讓程序跨平臺運行并不是一件容易的事,有相當多的因素必須考慮,例如數 據類型所占內存長度就是一個問題, Java 在不同的平臺上的數據類型長度是 統一的 ( 而 C/C++ 則不然 ) 。這是 Java 在提高程序可移植性上最顯而易見的一個例子。
? 高性能的 (High-Performance)
高性能是 Java 所宣稱的,在某些條件的配合下, Java 號稱可以與 C/C++ 擁有同樣甚至更好的運行性能,但更多的人只是將這個 宣稱視為一個商業宣傳的口號。 Java 是在運行時期才將中間的字節碼編譯為原始機器語 言,這就花上了一段不短的啟動時間,而早期的 Java 在運行性能上確實是一直被詬病的。
不過在歷經數個版本的變更, Java 一直嘗試提高其運行的性能,像使用 Java HotSpot 技術。在第一次加載 Java 字節碼時, JIT 會以編譯模式開始加載,分析并嘗試以 最佳化編譯為目標平臺的原始機器語言。每一次的版本更新, Java 皆嘗試在性能上做出改進。
??
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
