1. 程式人生 > >Java入門到實踐系列(1)——Java簡介

Java入門到實踐系列(1)——Java簡介

## 一、Java的發展歷史 Java是由SUN公司的開發人員James Gosling及其領導的一個開發小組與1995年開發並推出的一門高階程式語言。經過二十幾年的發展已經成為最受程式設計師歡迎、使用最為普遍的程式語言之一。 2004年J2SE 5.0版本問世,更新力度大,Java從此進入了發展的快車道。並將J2SE 5.0改名為Java SE 5.0。 2009年Oracle公司(甲骨文)收購Sun公司。 2014年,Java SE 8釋出。**(企業常用版本)** 以上年份並不重要,只是為了讓大家簡單的瞭解一下Java的發展歷程。 跟大家分享一個有趣的小故事,其實Java之前不叫Java,而是叫Oak(橡樹),是以高斯林辦公室外面的一顆橡樹命名的。當他們去註冊商標時,發現Oak已經被註冊。於是乎,Java的幾位爸爸們開始討論給Oak改名字,他們一邊喝著印度尼西亞的Java(咖啡名稱)一邊想名字。喝著喝著就決定把Oak改成了Java。這也是為什麼Java的Logo上有一個咖啡杯的圖案。 不得不說,外國人起名字真的很隨意,哈哈。 ![1596525388149](https://img2020.cnblogs.com/blog/1438957/202008/1438957-20200804164920817-1292009384.png) ​ **詹姆斯·高斯林(Java之父)** ## 二、Java的分類 **Java SE(J2SE)** ——基礎部分,Java的標準版本,包括面向物件、API、JVM等等。主要應用於桌面軟體的開發,如QQ、優酷等。 **Java EE(J2EE)** —— 企業級應用的開發,Java的企業版,建立於Java SE的基礎之上,包括JSP、EJB、Service等等。主要應用於網站的開發。 **Java ME(J2ME)** —— 嵌入式開發。主要應用於手機遊戲、手機軟體、機頂盒等的開發。 而我們主要是針對先對Java SE進行學習,為後面的Java EE打下良好的基礎。 ## 三、Java的跨平臺性 Java語言之所以能夠受廣大程式設計師的喜愛與它的跨平臺性是分不開的。 **跨平臺是個什麼?** 我們常用的平臺有蘋果Mac系統,微軟Windows系統和Linux系統。 有些經驗的同學可能都知道,比如我在Windows下的網易雲音樂安裝包,在Mac和Linux下是無法安裝的,需要另外下載網易雲音樂的對應系統的安裝包。 而咱們Java口號是“Write Once,Run Anywhere”,具有**一次編譯,到處執行**的特點。 **那麼如何實現跨平臺?跨平臺的原理是什麼?** 主要原因是Java程式在執行時,採用了Java虛擬機器(JVM),虛擬機器也叫執行時系統。Java編譯後生成的是位元組碼檔案(.class)最終由JVM解釋並執行。 在不同的作業系統上,**只要安裝了Java虛擬機器,就可以運行同一個Java位元組碼檔案**,儘管安裝在不同平臺上的虛擬機器不一樣,但是這些虛擬機器向計算機解釋執行Java位元組碼的方式是一樣的,解釋執行的結果也是一樣的。虛擬機器抹平了不同作業系統之間的差異,從而實現了跨平臺的功能。 ![1596525551478](https://img2020.cnblogs.com/blog/1438957/202008/1438957-20200804164919747-1177073078.png) ​ **非跨平臺** ![1596525514052](https://img2020.cnblogs.com/blog/1438957/202008/1438957-20200804164918470-946596423.png) ​ **跨平臺** ## 四、Java的特點 ### **(一)面向物件。** Java是一門完全的面嚮物件語言,萬物皆為物件是其核心思想。Java技術提供了一個清晰和高效的面向物件開發平臺。 ### **(二)可移植性。** Java具有很好的跨平臺性,同一個Java位元組碼能夠在不同的硬體平臺和不同的作業系統上執行。可移植性一方面體現在它不依賴操作平臺。另一 方面體現在Java規定了基本資料型別的位元組長度。不存在不同硬體和作業系統上資料型別不相容的問題。 ### **(三)可解釋性。** Java編譯器編譯產生的不是可執行程式碼,而是位元組碼。位元組碼是由Java虛擬機器執行的高度優化的一系列指令,虛擬機器通過解釋執行Java位元組碼。解釋位元組碼是建立具有跨平臺性的可移植程式的有效辦法。 ### **(四)多執行緒。** Java的多執行緒技術提供了構建含有許多併發執行緒的途徑和方法。 ## 知識拓展 **JVM:**(Java Virtual Machine),Java虛擬機器,JVM的作用負責解析執行class檔案,保證Java的跨平臺。 **JRE:**(Java Runtime Environment) Java程式的執行時環境,包含了JVM和執行時所需要的核心類庫。如果只要執行Java程式,只要安裝JRE即可。 **JDK:**(Java Development Kit) 是Java程式開發工具包,包含JRE和開發人員所用的工具(編譯工具javac.exe 執行工具 java.exe)。 ![1596525600677](https://img2020.cnblogs.com/blog/1438957/202008/1438957-20200804164917262-420161948.png) **JDK、JRE、JVM之間的關係** ![](https://img2020.cnblogs.com/blog/1438957/202008/1438957-20200804164915878-6486578