天天看點

Java核心技術卷I基礎知識1.5 關于Java的常見誤解

<b>1.5 關于java的常見誤解</b>

在結束本章之前,我們列出了一些關于java的常見誤解,同時給出了解釋。

1.?java是html的擴充

java是一種程式設計語言;html是一種描述網頁結構的方式。除了用于在網頁上放置java applet的html擴充之外,兩者沒有任何共同之處。

2.?使用xml,是以不需要java

java是一種程式設計語言;xml是一種描述資料的方式。可以使用任何一種程式設計語言處理xml資料,而java api對xml處理提供了很好的支援。此外,許多重要的第三方xml工具采用java編寫。有關這方面更加詳細的資訊請參看卷Ⅱ。

3.?java是一種非常容易學習的程式設計語言

像java這種功能強大的語言大都不太容易學習。首先,必須将編寫玩具式程式的輕松和開發實際項目的艱難區分開來。需要注意的是:本書隻用了7章讨論java語言。在兩卷中,其他的章節介紹如何使用java類庫将java語言應用到實際中去。java類庫包含了數千種類和接口以及數萬個函數。幸運的是,并不需要知道它們中的每一個,然而,要想java解決實際問題,還是需要了解不少内容的。

4.?java将成為适用于所有平台的通用性程式設計語言

從理論上講,這是完全有可能的。但在實際中,某些領域其他語言有更出色的表現,比如,objective c和後來的swift在ios裝置上就有着無可取代的地位。浏覽器中的處理幾乎完全由javascript掌控。windows程式通常都用c++或c#編寫。java在伺服器端程式設計和跨平台用戶端應用領域則很有優勢。

5.?java隻不過是另外一種程式設計語言

java是一種很好的程式設計語言,很多程式設計人員喜歡java勝過c、c++或c#。有上百種好的程式設計語言沒有廣泛地流行,而帶有明顯缺陷的語言,如:c++和visual basic卻大行其道。

這是為什麼呢?程式設計語言的成功更多地取決于其支撐系統的能力,而不是優美的文法。人們主要關注:是否提供了易于實作某些功能的易用、便捷和标準的庫?是否有開發工具提供商能建立強大的程式設計和調試環境?語言和工具集是否能夠與其他計算基礎架構整合在一起?java的成功源于其類庫能夠讓人們輕松地完成原本有一定難度的事情。例如:聯網web應用和并發。java減少了指針錯誤,這是一個額外的好處,是以使用java程式設計的效率更高。但這些并不是java成功的全部原因。

6.?java是專用的,應該避免使用

最初建立java時,sun為銷售者和最終使用者提供了免費許可。盡管sun對java擁有最終的控制權,不過在語言版本的不斷發展和新庫的設計過程中還涉及很多其他公司。虛拟機和類庫的源代碼可以免費獲得,不過僅限于檢視,而不能修改和再釋出。java是“閉源的,不過可以很好地使用”。

這種狀況在2007年發生了戲劇性的變化,sun聲稱java未來的版本将在general public license(gpl)下提供。linux使用的是同一個開放源代碼許可。oracle一直緻力于保持java開源。隻有一點美中不足——專利。根據gpl,任何人都可以得到專利許可,允許其使用和修改java,不過僅限于桌面和伺服器平台。如果你想在嵌入式系統中使用java,就需要另外一個不同的許可,這很可能需要付費。不過,這些專利在未來十年就會到期,那時java就完全免費了。

7.?java是解釋型的,是以對于關鍵的應用程式速度太慢了

早期的java是解釋型的。現在java虛拟機使用了即時編譯器,是以采用java編寫的“熱點”代碼其運作速度與c++相差無幾,有些情況下甚至更快。

對于java桌面應用速度慢,人們已經抱怨很多年了。但是,今天的計算機速度遠比人們發出抱怨的時候快了很多。一個較慢的java程式與幾年前相當快的c++程式相比還要快一些。

8.?所有的java程式都是在網頁中運作的

所有的java applet都是在網頁浏覽器中運作的。這也恰恰是applet的定義,即一種在浏覽器中運作的java程式。然而,大多數java程式是運作在web浏覽器之外的獨立應用程式。實際上,很多java程式都在web伺服器上運作并生成用于網頁的代碼。

9.?java程式是主要的安全風險

對于早期的java,有過關于安全系統失效的報道,曾經一度引起公衆嘩然。研究人員将這視為一種挑戰,即努力找出java的漏洞,對applet安全模型的強度和複雜度發起挑戰。随後,人們很快就解決了引發問題的所有技術因素。後來又發現了更嚴重的漏洞,而sun以及後來的oracle反應卻過于遲緩。浏覽器制造商則有些反應過度,他們甚至預設禁用了java。客觀地來講,可以想想針對windows可執行檔案和word宏有數百萬種病毒攻擊,并造成了巨大的損害,不過奇怪的是卻很少有人批評被攻擊平台的脆弱。

有些系統管理者甚至在公司浏覽器中禁用了java,而同時卻允許使用者下載下傳可執行檔案和word文檔,實際上,這些帶來的風險遠甚于使用java。盡管距離java誕生已經20年之久,與其他常用的執行平台相比,java還是安全得多。

10.?javascript是java的簡易版

javascript是一種在網頁中使用的腳本語言,它是由netscape發明的,原來的名字叫做livescript。javascript的文法類似java,除此之外,兩者無任何關系。當然,名字有些相像。javascript的一個子集已經标準化為ecma-262。與java applet相比,javascript更緊密地與浏覽器內建在一起。特别是javascript程式可以修改正在顯示的文檔,而applet隻能在有限的區域内控制外觀。

11.?使用java可以用廉價的internet裝置取代桌面計算機

當java剛剛釋出的時候,一些人打賭:肯定會有這樣的好事情發生。一些公司已經生産出java網絡計算機的原型,不過使用者還不打算放棄功能強大而便利的桌面計算機,而去使用沒有本地存儲而且功能有限的網絡裝置。當然,如今世界已經發生改變,對于大多數最終使用者,常用的平台往往是手機或平闆電腦。這些裝置大多使用安卓平台,這是java的衍生産物。學習java程式設計肯定也對android程式設計很有幫助。