一、什麼是 Java Java 是 Sun Microsystems 於 1995 年首次發佈的一種編程語言和計算平臺。編程語言還是比較好理解的,什麼是計算平臺呢? 計算平臺是電腦中運行應用程式(軟體的環境),包括硬體環境和軟體環境。一般系統平臺包括一臺電腦的硬體體繫結構,操作系統、運行時庫。 Ja ...
一、什麼是 Java
Java 是 Sun Microsystems 於 1995 年首次發佈的一種編程語言和計算平臺。編程語言還是比較好理解的,什麼是計算平臺呢?
計算平臺是電腦中運行應用程式(軟體的環境),包括硬體環境和軟體環境。一般系統平臺包括一臺電腦的硬體體繫結構,操作系統、運行時庫。
Java 是快速,安全和可靠的。從筆記本電腦到數據中心,從游戲機到科學超級電腦,從手機到互聯網,Java 無處不在!Java 分三個版本
- JavaSE (J2SE) (Java2 Platform Standard Edition java平臺標準版)
- JavaEE (J2EE) (Java2 Platform,Enterprise Edition, java平臺企業版)
- JavaME (J2ME) (Java 2 Platform Micro Edition, java平臺微型版)
二、Java 的特點
1、Java 是一門面向對象的編程語言
什麼是面向對象?**面向對象 (Object Oriented) **是一種軟體開發思想。他是對現實世界的一種抽象,面向對象會把相關數據和方法組織成為一個整體來看待
相對的另外一種開發思想就是面向過程的開發思想,什麼面向過程? 面向過程 (Procedure0riented) 是一種以過程為中心的編程思想。舉個例子:比如你是個學生,你每天去上學需要做幾件事情?
起床、穿衣服、洗臉刷牙,吃飯,去學校。一般是順序性的完成一系列動作。
class student{
void student_wakeUp(){...}
void student_cloth(){...}
void student_wash(){...}
void student_eating(){...}
void student_gotoSchool(){...}
}
而面向對象可以把學生進行抽象,所以這個例子就會變為
class student{
void wakeUp(){...}
void cloth(){...}
void wash(){...}
void eating(){...}
void gotoSchool(){...}
}
可以不用嚴格按照順序來執行每個動作。這是特點一
-
Java 摒棄了C++中難以理解的多繼承、指針、記憶體管理等概念;不用手動管理對象的生命周期,這是特點二
-
Java 語言具有功能強大和簡單易用的兩個特征,現在的企業級開發,快速敏捷開發,尤其是各種框架的出現,使Java 成為一門越來越火的一門語言,這是特點三。
-
Java 是一門靜態語言,靜態語言是指就是在編譯期間就能夠知道數據類型的語言,在運行前就能夠檢查類型的正確性,一旦類型確定後就不能再更改,比如下麵這個例子
public void foo(){ int x = 5; boolean b = x; }
靜態語言主要有 Pascal, Perl,C/C++,JAVA,C#,Scala 等
相應的,動態語言沒有任何特定的情況需要指定變數的類型,再運行時確定的數據類型。比如有 Lisp,Perl, Python、Ruby、JavaScript 等。
從設計的角度來說,所有的語言都是設計用來把人類可讀的代碼轉換為機器指令。動態語言是為了能夠人程式員提高編碼效率,因此你可以使用更少的代碼來實現功能。靜態語言設計是用來讓硬體執行的更高效,因此需要程式員編寫準確無誤的代碼,以此讓你的代碼儘快的執行。從這個角度上來說,靜態語言的執行效率要比動態語言高,速度更快。這是特點四。
2、Java 具有平臺的獨立性和可移植性
Java 有一句非常著名的口號: Write once,run anywhere ,也就是一次編寫、到處運行。為什麼 Java 能夠吹出這種牛批的口號來?核心就是 **JVM **。我們知道,電腦應用程式和硬體之間會屏蔽很多細節,它們之間依靠操作系統完成調度和協調,大致的體繫結構如下
那麼加上 Java 應用、JVM 的體繫結構會變為如下
Java 是跨平臺的,已編譯的 Java 程式可以在任何帶有 JVM 的平臺運行,你可以在 Windows 平臺下編寫代碼,然後拿到 Linnx 平臺下運行,該如何實現呢
首先你需要在應用中編寫 Java 代碼;
送 Eclipse 或者 javac 把 Java 代碼編譯為 .class 文件
然後把你的 .class 文件打包成 .jar 文件
然後你的 .jar 文件就能夠在 Windows 、Mac OS X、Linux 系統下運行了。不同的操作系統有不同的 JVM 實現,切換平臺時,不需要再次編譯你的 Java 代碼了。這是特點五
3、Java 能夠容易實現多線程
Java 是一門高級語言,高級語言會對用戶屏蔽很多底層實現細節。比如 Java 是如何實現多線程的。從操作系統的角度來說,實現多線程的方式主要有下麵這幾種
在用戶空間中實現多線程
在內核空間中實現多線程
在用戶和內核空間中混合實現線程
而我認為 Java 應該是在 用戶空間 實現的多線程的,內核是感知不到 Java 存在多線程機制的。這是特點六
4、Java 具有高性能
我們編寫的代碼,經過 javac 編譯器編譯稱為 位元組碼(bytecode),經過 JVM 內嵌的解釋器將位元組碼轉換為機器代碼,這是解釋執行,這種轉換過程效率較低。但是部分 JVM 的實現比如 Hotspot JVM 都提供了 **JIT(Just-In-Time) **編譯器,也就是通常所說的動態編譯器,JIT 能夠在運行時將熱點代碼編譯機器碼,這種方式運行效率比較高,這是編譯執行。所以 Java 不僅僅只是一種解釋執行的語言。這是特點七。
5、Java 語言具有強壯性
Java 的強類型機制、異常處理、垃圾的自動回收集等是 Java 程式強壯性的重要保證,這也是 Java 與 C 語言的重要區別
6、很容易開發分散式項目
Java 語言支持 Internet 應用的開發,Java 中有 net api,它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的 RMI(遠程方法激活) 機制也是開發分散式應用的重要手段。這是特點九。
三、Java 開發環境
1、JDK
JDK(Java Developmet Kir)稱 Java 開發包或 Java 開發工具,是一個編寫 Java 的 Applet小程式和應用程式的程式開發環境。JDK 是整個Java的核心,包括了 Java運行環境(Java Runtime Environment),一些 Java 工具 和 Java 的核心類庫(Java API)
我們可以認真研究一下這張圖,它幾乎包括了 Java 中所有的概念,我使用的是 jdk1.8 ,可以點進去 Description of Java Conceptual Diagram , 可以發現這裡麵包括了所有關於 Java 的描述
Oracle 提供了兩種 Java 平臺的實現,一種是我們上面說的 JDK,Java 開發標準工具包,一種叫 JRE,叫做 Java Runtime Environment,Java 運行時環境。JDK 的功能要比 JRE 全很多。
2、JRE
JRE 是個運行環境,JDK 是個開發環境。因此寫 Java 程式的時候需要 JDK,而運行 Java 程式的時候就需要 JRE。而 JDE 裡面已經包含了 JRE。因此只要安裝了了 JDK,就可以編輯 Java 程式,也可以正常運行 Java 程式。但由於 JDK 包含了許多與運行無關的內容,占用的空間較大,因此運行普通的 Java 程式無需安裝 JDK,只需要安裝 JRE 即可。