天天看點

java 核心技術 卷Ⅰ- 1.5 關于Java的常見誤解

在結束本章之前,我們将列出關于 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)卻大行其道。

這是為什麼呢?程式設計語言的成功更多地取決于其支援系統(support system)的能力,而不是文法的精巧性。人們主要關注的是:是否提供了有用、便捷和标準的庫來實作所需要的特性?是否有工具開發商建立了強大的程式設計和調試環境?語言和工具集是否與計算基礎架構的其他部分有效整合? Java 的成功緣于其類庫能夠讓人們輕松地完成原本有一定難度的工作,例如網絡連接配接、Web 應用和并發。Java 減少了指針錯誤,這是一個額外的好處,是以使用 Java 程式設計的效率更高。但這些并不是 Java 成功的全部原因。

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

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

這種狀況在 2007 年發生了巨大變化,Sun 公司宣布 Java 未來的版本将在 General Public License(GPL)下釋出(Linux 也使用同樣的開放源代碼許可)。Oracle 公司一直緻力于保持Java 開源。目前有多個開源 Java 實作提供商,分别提供不同級别的承諾和支援。

7. Java 是解釋性的,是以對于關鍵應用速度太慢了

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

8. 所有的 Java 程式都在網頁中運作。

有一段時間,Java applet 在 Web 浏覽器中運作。如今,Java 程式是運作在 Web 浏覽器之外的獨立應用。實際上,大多數 Java 程式都在伺服器上運作,為網頁生成代碼或者計算業務邏輯。

9. Java 程式存在重大安全風險。

對于早期的 Java,有過關于 Java 安全系統失效的報道,曾經引起過公衆關注。研究人員努力找出 Java 的漏洞,并質疑 applet 安全模型的強度和複雜度,将這視為一種挑戰。人們很快就解決了所發現的技術問題。後來又發現了更嚴重的漏洞,而 Sun 公司以及後來的 Oracle公司反應卻很遲緩。浏覽器制造商禁用了 Java applet 支援。促成 applet 的安全管理器體系結構現在已經過時。如今,Java 應用與其他應用同樣安全。由于虛拟機提供的保護,Java 應用比用 C 或 C++ 編寫的應用要安全得多。

10. JavaScript 是 Java 的簡易版。

JavaScript 是一種可以在網頁中使用的腳本語言,它由 Netscape 發明,最初的名字是LiveScript。JavaScript 的文法讓人想到 Java,因為名字也有些相像,但除此之外,兩者并無任何關系。尤其是,Java 是強類型的,編譯器能捕獲類型濫用導緻的很多錯誤。而在JavaScript 中,隻有當程式運作時才能發現這些錯誤,是以消除錯誤要費勁得多。

11. 使用 Java 時,可以用廉價的“Internet 裝置”取代桌面計算機。

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

關于Java的常見誤解,可能很多人都或多或少因為不夠了解導緻一些誤會産生。
不過,這些東西也不需要急于去“修正”。
學習Java 或者其他程式設計語言,最重要的永遠是——行動
代碼很多時候看上去非常簡單,尤其是你的英語水準還算可以的情況下
但看和實際做,差别很大,實際敲代碼的時候,往往會不小心多或者少打了一個關鍵字,或者輸入了一個很相似的單詞,可能整個程式就無法正常執行。
這種情況,隻有多做,多練習,多行動,多思考,才能融會貫通。
程式設計正如鍛煉身體,道理其實誰都懂,就看誰更能真正實踐。
每個人的情況或有不同,但隻要多下功夫,持之以恒。某一天就會忽然發現,原來自己已經進步了這麼多。