1、Java特性
1.簡單性
"簡單"的另一個方面就是小,Java的目標之一就是支持開發能夠在小型機器上獨立運行的軟件,也就是Java的ME版本。語法上剔除了C++比較難以理解,容易混淆的語法,以及復雜的指針。
面向對象是一種程序設計技術重點在數據(即對象)和對象的接口上。書中舉了個面向過程和面向對象的區別:它說一個“面向對象”的木匠始終關注的是所制造的椅子,其次是所使用的工具。一個“面向過程”的木匠首先考慮的是所用的工具。其實簡單理解為就是 一個考慮的是數據對象,一個考慮的是方法。
3.分布式
Java豐富的例程庫使得Java應用程序可以很方便的通過URL地址打開和訪問網絡上的對象。
4.健壯性
Java非常強調進行早期的問題檢測,后期動態的(運行時)檢測,Java與C/C++最大的不同在於Java采用的指針模型可以消除重寫內存和損壞數據的可能性。
5.安全性
因為Java要適用於網絡/分布式環境所以安全性頗受重視,早期的Java對於網絡上進行通信的時候,把從網絡來的代碼放進一個沙箱環境執行,而不影響主系統的運行。后期通過數字簽名和用戶授權的安全方式執行代碼。
6.體系結構中立
編譯時生成一個文件,這個文件可以在任何具有Java環境里可以運行,不管是什么操作系統。
7.可移植性
在Java中,數值類型具有固定的字節數。二進制數據以固定的格式進行存儲和傳輸。字符串則采用標准的Unicode格式存儲。
8.解釋型
Java解釋器可以在任何移植了解釋器的機器上直接執行Java代碼。
9.高性能
字節碼可以在運行時動態地轉換成對應運行這個應用的特定CPU的機器碼。例如,即時編譯器可以監控哪些代碼會頻繁執行並對其優化以提高速度。
10.多線程
多線程可以帶來更快的交互響應和實時行為。
例如,Java在問世之初,多核處理器還很神秘,而WEB編程才剛剛起步,處理器要花很長時間等待服務器響應,需要並發程序設計來確保用戶界面不會被“凍住”。
11.動態性
Java能夠適應不斷發展的環境,庫中可以自由的添加新方法和實例變量,而對客戶端卻沒有如何影響。
2、Java applet與Internet
在網頁中運行的Java程序稱為applet,要使用applet只需要一個啟動Java的Web瀏覽器。后來由於Java遭遇了嚴重的安全問題,瀏覽器和Java瀏覽器插件變得限制越來越多。如今,要在瀏覽器中使用applet,是有一定的難度的。
3、Java發展簡史
-
Java語言的前身:Oak
-
1991年~1995年:Java的研發開始階段
-
1996年初:Java發布第一個版本。期間Java 1.1修復了1.0大部分的問題,但還有很大的局限性。
-
1998年:發布了Java 1.2版本稱為Java SE。此時Java分為了三個版本。
1. JavaSE(也稱J2SE,Java 2 Platform Standard Edition,標准版) 此版本是其他兩個版本的基礎應用。
2. JavaME(也稱J2ME,Java 2 Platform Micro Edition,微型版) 此版本主要用於嵌入式設備。
3. JavaEE(也稱J2EE,Java 2 Platform Enterprise Edition,企業版) 此版本主要用於開發企業級大型服務器端的Java程序。 -
2004年:Java進行重大改革並更名為Java 5.0版本。添加許多重要的特性,比如foreach循環。
-
2006年末:發布了Java6版本。
-
2009年:sun公司被oracle收購,Java停止更新。
-
2011年:發布了Java7版本。
-
2014年:發布了Java8版本,這個版本也是發生了最大的變化。增加了“函數式”編程方式,以及流的使用。
Java語言的演進 版本 年份 新語言特性 類和接口數量 1.0 1996 語言本身 211 1.1 1997 內部類 477 1.2 1998 strictfp修飾符 1524 1.3 2000 無 1840 1.4 2002 斷言 2723 5.0 2004 泛型類、”for each“循環、可變元參數、自動裝箱、元數據、枚舉、靜態導入 3279 6 2006 無 3793 7 2011 基於字符串的選擇語句、菱形運算符、二進制字面量、異常處理增強 4024 8 2014 lambda表達式、包含默認方法接口、流和日期/時間庫 4240 9 2017 模塊、其他的語言和類庫增強 6005
