Java介紹
作者:韓茹
公司:程式咖(北京)科技有限公司
程式咖:IT職業技能評測平台
網址:http://www.chengxuka.com/
任務
1.什麼是Java
2.Java發展曆史
3.Java語言的特點
4.Java的應用場景
5.Java平台體系
6.Java的專業術語
7.Java運作核心機制
一、什麼是Java
Java是一種通用的,基于類的,面向對象的程式設計語言。它是用于應用程式開發的計算平台。是以,Java是快速,安全和可靠的。它被廣泛用于在筆記本電腦,資料中心,遊戲機,科學超級計算機,手機等中開發Java應用程式。Java遵循WORA(Write Once, Run Anywhere。一次寫入,到處運作)的原理,并且與平台無關。它也簡單易學。
二、Java發展曆史
Java是世界上使用最廣泛的程式設計語言之一。Java最初由Sun Microsystems在1990年代開發,用于開發從Web應用程式到移動應用程式到批處理應用程式的所有内容。Java最初是一種純粹的面向對象的語言,但現在已經發展成為一種多範例語言,可以高度适應任何情況。擁有龐大的開發人員社群和支援庫,Java是開發幾乎所有類型的應用程式的理想選擇。
Java是最初由開發James Gosling(詹姆斯·高斯林,他被稱為Java程式設計語言之父)在Sun Microsystems公司(現已經被Oracle收購),并于1995年釋出了作為Sun公司的一個核心組成部分Java平台。
James Gosling(詹姆斯·高斯林),Mike Sheridan(邁克·謝裡丹)和Patrick Naughton(帕特裡克·諾頓)于1991年6月啟動了Java語言項目。Java最初是為互動式電視設計的,但在當時的數字有線電視行業來說太先進了。該語言最初是在James Gosling(詹姆斯·高斯林)辦公室外的一棵橡樹之後被稱為Oak的。後來,該項目以Green命名,并最終從Java coffee(印度尼西亞的一種咖啡)重命名為Java。
Java的創始人:James Gosling(詹姆斯·高斯林)
曆史版本:
截至2021年3月,最新版本是Java 16。從2020年9月開始,支援Java 8和11作為長期支援(LTS)版本,并且支援一個更高的非LTS版本。 Java的主要發行版本及其發行日期:
版本 | 日期 |
---|---|
JDK測試版 | 1995年 |
JDK1.0 | 1996年1月23日 |
JDK 1.1 | 1997年2月19日 |
J2SE 1.2 | 1998年12月8日 |
J2SE 1.3 | 2000年5月8日 |
J2SE 1.4 | 2002年2月6日 |
J2SE 5.0 | 2004年9月30日 |
Java SE 6 | 2006年12月11日 |
Java SE 7 | 2011年7月28日 |
Java SE 8 | 2014年3月18日 |
Java SE 9 | 2017年9月21日 |
Java SE 10 | 2018年3月20日 |
Java SE 11 | 2018年9月25日 |
Java SE 12 | 2019年3月19日 |
Java SE 13 | 2019年9月17日 |
Java SE 14 | 2020年3月17日 |
Java SE 15 | 2020年9月15日 |
Java SE 16 | 2021年3月16日 |
三、Java語言的特點
-
一種面向對象的程式設計語言。
按照對象集合的方式組織程式是一種面向對象的程式設計思維。
面向對象程式設計的四個主要概念是:抽象化,封裝,繼承,多态。
-
一種與平台無關的語言。(它提供了在不同平台下的解釋運作環境)
編譯器将源代碼轉換為位元組碼,然後JVM執行編譯器生成的位元組碼。該位元組碼可以在Windows,Linux和macOS的任何平台上運作,這意味着如果我們在Windows上編譯程式,則可以在Linux上運作,反之亦然。每個作業系統具有不同的JVM,但是在位元組碼執行後,所有作業系統産生的輸出都是相同的。這就是為什麼我們稱Java為平台無關的語言。
-
簡單
Java是簡單的語言之一,因為它不具有指針,運算符重載,多重繼承,顯式記憶體配置設定等複雜功能。
-
一種健壯的語言,吸收了C/C++語言的優點。
Java語言健壯,意味着可靠。它以這樣的方式開發:盡力盡早檢查錯誤,這就是Java編譯器甚至能夠檢測到其他程式設計語言不易檢測到的那些錯誤的原因。使Java健壯的Java主要功能是垃圾收集,異常處理和記憶體配置設定。
-
具有較高的安全性。(自動回收垃圾,強制類型檢查,取消指針)
在Java中,我們沒有指針,是以我們無法通路越界數組,如果嘗試這樣做,它将顯示ArrayIndexOutOfBoundsException。這就是為什麼在Java中無法利用堆棧破壞或緩沖區溢出之類的一些安全漏洞的原因。
-
分布式
我們可以使用Java程式設計語言建立分布式應用程式。遠端方法調用和企業Java Bean用于在Java中建立分布式應用程式。Java程式可以輕松地分布在通過Internet連接配接互相連接配接的一個或多個系統上。
-
多線程
Java支援多線程。它是Java的一項功能,它允許并發執行程式的兩個或更多部分,以最大程度地利用CPU。
-
可移植
衆所周知,在一台機器上編寫的Java代碼可以在另一台機器上運作。Java的平台無關功能,其中可以将其平台無關位元組碼帶到任何平台上執行,進而使Java可移植。
- 開源
四、Java的應用場景
-
桌面GUI應用程式
桌面應用程式可以使用Java輕松開發。我們使用AWT,Swing,JavaFX等API來建構這些應用程式。
-
移動應用
移動應用程式是為手機和平闆電腦建立的應用程式。在當今時代,大多數電話和智能裝置都具有Android作業系統,沒有Java就不可能進行Android開發。Java Micro Edition(Java ME或J2ME)是一種流行的跨平台架構,用于建構可在所有功能手機和智能手機上運作的應用程式。
-
企業應用
企業應用程式是一個大型軟體系統,可以在公司環境中運作,以滿足組織而不是單個使用者的需求。
-
科學應用
科學應用程式是一種使用數學影響實際活動的應用程式。Java由于其強大的功能而支援科學應用程式的開發。
-
Web應用
Web應用程式是通過浏覽器界面在Internet上傳遞的用戶端-伺服器程式。
-
嵌入式系統
一個嵌入式系統,也被稱為內建系統,是組裝在一起以執行專用功能的更大的系統的許多小的計算單元的組合。嵌入式系統随處可見。例如,電機系統,汽車中的娛樂和多媒體,電子商務,無線通信,移動計算和聯網都使用嵌入式系統。
嵌入式系統使用Java進行開發。最初,Java是為開發嵌入式系統而設計的。
-
大資料技術
大資料一詞定義為“可以分析以提取模式,趨勢和有用資訊的極大型和複雜資料集。它是最新技術領域中最受歡迎的主題之一。Java是大資料的視角。如今,許多開發人員正在将職業轉向大資料技術。
-
分布式應用
分布式應用程式是在網絡内的多台計算機上執行或運作的應用程式或軟體。分布式應用程式或系統具有許多共同的要求,尤其是由于它們在其上運作的平台的分布式和動态特性而産生。Java提供了實作這些應用程式的選項。
-
基于雲的應用
雲計算意味着通過Internet按需傳遞IT資源,包括具有按需付費定價模式的存儲,伺服器,資料庫,網絡和軟體。它可以低成本為IT基礎架構提供解決方案,因為我們可以将檔案儲存在遠端資料庫中并按需檢索它們。長期以來,Java一直是為Web應用程式提供結構的程式設計語言,由于它的分布式特性,現在它已經進入了雲應用程式。
-
奮鬥奮鬥
Web伺服器是一種計算機程式,它使用HTTP(超文本傳輸協定)和其他協定來存儲,處理和響應通過WWW(網際網路)發出的用戶端請求。Web伺服器是運作網站并向使用者傳遞網頁的系統。Java生态系統包含多個Java Web伺服器和應用程式伺服器。Java提供了Web伺服器,包括Apache Tomcat,Simple,Jo!,Rimfaxe Web伺服器(RWS)Apache HTTP伺服器,Resin,Adobe JRun和Project Jigsaw。
-
軟體工具
軟體工具是開發人員用來開發,分析,維護,調試或支援其他應用程式和程式的一組計算機程式。許多開發人員使用Java編寫和開發有用的軟體工具。比如Eclipse,IntelliJ Idea和NetBeans IDE。
-
遊戲應用
Java被證明是開發二維遊戲的最佳平台之一。如今,幾乎每個人都擁有裝有Android遊戲的Android手機。沒有Java,就無法建構Android遊戲。
我們知道Java是一種“藍領”語言,涉及軟體開發的各個領域。可以根據業務需要使用。通過這些應用程式,我們意識到現實中對Java的需求。當我們需要開發安全且可擴充的應用程式時,我們絕對應該選擇使用Java,因為Java具有主要的安全功能。這就是為什麼最好用Java開發許多需要很多安全問題的銀行應用程式的原因。是以,如果我們的業務規格與其功能相比對,我們可以選擇該語言。許多技術和程式設計語言都在發展,但是Java的普及程度仍然是其他語言無法比拟的。
五、Java平台體系
- Java SE(Java Platform Standard Edition)。Java SE 以前稱為 J2SE。它允許開發和部署在桌面、伺服器、嵌入式環境和實時環境中使用的 Java 應用程式。
- Java EE(Java Platform Enterprise Edition)。這個版本以前稱為 J2EE。 開發企業級的應用
- Java ME(Java Platform Micro Edition)。這個版本以前稱為 J2ME。Java ME 為在移動裝置和嵌入式裝置(比如手機、PDA、電視機頂盒和列印機)上運作的應用程式提供一個健壯且靈活的環境.
六、Java的專業術語
首先了解兩個計算機術語:
1.計算機程式:
為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合
編寫程式的工具就是計算機語言,Java就是多種語言中的一種
2.軟體:
軟體是計算機程式、程式所用的資料以及有關文檔資料的集合。
在學習Java之前,必須熟悉這些Java通用術語。
1. Java虛拟機(JVM:Java Virtual Machine): 通常稱為JVM。程式分為三個執行階段。他們被編寫,編譯并運作程式。
- 像你和我這樣的Java程式員都可以編寫程式。
- 編譯由JAVAC編譯器完成,JAVAC編譯器是Java開發工具包(JDK)中包含的主要Java編譯器。它以Java程式作為輸入,并生成位元組碼作為輸出。
- 在程式的運作 階段,JVM執行編譯器生成的位元組碼。
現在,我們了解到Java虛拟機的功能是執行編譯器産生的位元組碼。每個作業系統都有不同的JVM,但是在執行位元組碼後它們在所有作業系統上産生的輸出都是相同的。這就是為什麼Java被稱為獨立于平台的語言的原因。
2.開發過程中的位元組碼: JDK的Javac編譯器将Java源代碼編譯為位元組碼,以便可以由JVM執行。編譯器将其另存為.class檔案。要檢視位元組碼,可以使用像javap這樣的反彙程式設計式。
3. Java開發工具包(JDK):當我們使用術語JDK時,當我們了解位元組碼和JVM時。是以,顧名思義,它是一個完整的Java開發工具包,其中包括編譯器,Java運作時環境(JRE),Java調試器,Java文檔等所有内容。要在Java中執行該程式,我們需要在我們的計算機上安裝JDK為了建立,編譯和運作Java程式而在計算機上運作。
4. Java運作時環境(JRE): JDK包括JRE。在我們的計算機上安裝JRE可以運作Java程式,但是,我們無法對其進行編譯。JRE包括浏覽器,JVM,小程式支援和插件。為了運作Java程式,計算機需要JRE。
5.垃圾收集器:在Java中,程式員無法删除對象。要删除或重新收集該記憶體,JVM擁有一個名為Garbage Collector的程式,簡稱GC。垃圾收集器可以重新收集未引用的對象。是以,Java通過處理記憶體管理使程式員的工作變得輕松。但是,程式員是否應該使用自己的代碼,無論他們使用的對象已經使用了很長時間了。因為垃圾無法恢複被引用對象的記憶體。
6. CLASSPATH中的類路徑是檔案路徑ava運作時和Java編譯器找的.class檔案加載。預設情況下,JDK提供了許多庫。如果要包括外部庫,則應将它們添加到類路徑中。
七、Java運作核心機制
剛剛提到了Java程式執行的三個階段,我們再來詳細的說一下:
計算機的進階程式設計語言類型:
- 編譯型 C /C++/Pascal//Golang等,會生成二進制檔案。比如:.exe檔案。
- 解釋型 Basic/Python/JavaScript / Perl /Shell不會生成二進制檔案
而Java 語言是兩種類型的結合;先編譯,再解釋執行
Java虛拟機(Java Virtual Machine) JVM
1 JVM可以了解成一個可運作Java位元組碼的虛拟計算機系統。
它有一個解釋器元件,可以實作Java位元組碼和計算機作業系統之間的通信
對于不同的運作平台,有不同 的JVM。
2 JVM屏蔽了底層運作平台的差别,實作了“一次編譯,随處運作”。
是以Java語言是跨平台的。
JVM可以了解成一個可運作Java位元組碼的虛拟計算機系統。
- 它有一個解釋器元件,可以實作Java位元組碼和計算機作業系統之間的通信
- 對于不同的運作平台,有不同 的JVM。
JVM屏蔽了底層運作平台的差别,實作了“一次編譯,随處運作”。