「01」java基礎回顧

超超哥哥8 發佈 2020-01-05T02:42:33+00:00

00 Java語言 由美國SUN公司發明於1995年,是目前業界應用最廣泛、使用人數最多的語言,連續多年排名世界第一,可以稱之為「計算機語言界的英語」。 Java廣泛應用於企業級軟體開發、安卓移動開發、大數據云計算等領域,幾乎涉及IT所有行業。

00 Java語言

由美國SUN公司發明於1995年,是目前業界應用最廣泛、使用人數最多的語言,連續多年排名世界第一,可以稱之為「計算機語言界的英語」。

Java廣泛應用於企業級軟體開發、安卓移動開發、大數據云計算等領域,幾乎涉及IT所有行業。





01 Java歷史

1991年,James Gosling在SUN公司的工程師小組想要設計這樣一種小型計算機語言。該語言主要用於像電視盒這樣的消費類電子產品。另外,由於不同的廠商選擇不同的CPU和作業系統,因此,要求該語言不能和特定的體系結構綁在一起,要求語言本身是中立的,也就是跨平台的。所以,將這個語言命名為「Green」,類似於綠色軟體的意思。後來,改名為Oak,橡樹的意思。改名後發現已經有一種語言叫這個名字了,再改名叫Java。Java語言發展到今天經歷了一系列的過程:

1991年,SUN公司的Green項目,Oak

1995年,推出Java測試版

1996年,JDK1.0

1997年,JDK1.1

1998年,JDK1.2,大大改進了早期版本缺陷,是一個革命性的版本,更名為Java2。

2004年,J2SE 5.0 (1.5.0) Tiger老虎

2006年,J2SE 6.0 (1.6.0) Mustang野馬

2011年,JavaSE7.0 Dolphin海豚

2014年,JavaSE8.0




02 Java的優勢

跨平台以及強大的生態圈!

Java為消費類智能電子產品而設計,但智能家電產品並沒有像最初想像的那樣擁有大的發展。然而90年代,Internet卻進入了爆髮式發展階段,一夜之間,大家都在忙著將自己的計算機連接到網絡上。這個時候,遇到了一個大的問題。人們發現連接到Internet的計算機各式各樣,有IBM PC、蘋果機、各種伺服器等等,不僅硬體CPU不同,作業系統也不同,整個的網絡環境非常複雜。這個時候,程式設計師們希望他們編寫的程序能夠運行在不同的機器,不同的環境中,這需要一種體系中立的語言(即跨平台)。Java的研發小組忽然發現他們用於小範圍的語言也可以適應Internet這個大環境。

  跨平台是Java語言的核心優勢,趕上最初網際網路的發展,並隨著網際網路的發展而發展,建立了強大的生態體系,目前已經覆蓋IT各行業的「第一大語言」,是計算機界的「英語」。

  雖然,目前也有很多跨平台的語言,但是已經失去先機,無法和Java強大的生態體系抗衡。Java仍將在未來幾十年成為程式語言的主流語言。

JAVA虛擬機是JAVA實現跨平台的核心。事實上,基於JAVA虛擬機(JVM)的程式語言還有很多種:


基於JAVA生態建立的產品將會越來越多;基於JAVA虛擬機的程式語言也將會越來越多;生態系統的強大,是JAVA能長盛不衰的根本。


03 Java的各個版本意義

JavaSE(Java Standard Edition):標準版:定位在個人計算機上的應用。

這個版本是Java平台的核心,它提供了非常豐富的API來開發一般個人計算機上的應用程式,包括用戶介面接口AWT及Swing,網絡功能與國際化、圖像處理能力以及輸入輸出支持等。在上世紀90年代末網際網路上大放異彩的Applet也屬於這個版本。Applet後來為Flash取代,Flash即將被HTML5取代。


JavaEE(Java Enterprise Edition):企業版,定位在伺服器端的應用。

  JavaEE是JavaSE的擴展,增加了用於伺服器開發的類庫。如:JDBC是讓程式設計師能直接在Java內使用的SQL的語法來訪問資料庫內的數據;Servlet能夠延伸伺服器的功能,通過請求-響應的模式來處理客戶端的請求;JSP是一種可以將Java程序代碼內嵌在網頁內的技術;


JavaME(Java Micro Edition):微型版,定位在消費性電子產品的應用上

  JavaME是JavaSE的內伸,包含J2SE的一部分核心類,也有自己的擴展類,增加了適合微小裝置的類庫:javax.microedition.io.*等。該版本針對資源有限的電子消費產品的需求精簡核心類庫,並提供了模塊化的架構讓不同類型產品能夠隨時增加支持的能力。

 注意點!:

  1.很多人開始會誤解為安卓開發就是JavaME,這兩個是完全不同的內容。




04 Java的特性和優勢

·跨平台/可移植性

這是Java的核心優勢。Java在設計時就很注重移植和跨平台性。比如:Java的int永遠都是32位。不像C++可能是16,32,可能是根據編譯器廠商規定的變化。這樣的話程序的移植就會非常麻煩。

·安全性

Java適合於網絡/分布式環境,為了達到這個目標,在安全性方面投入了很大的精力,使Java可以很容易構建防病毒,防篡改的系統。

·面向對象

面向對象是一種程序設計技術,非常適合大型軟體的設計和開發。由於C++為了照顧大量C語言使用者而兼容了C,使得自身僅僅成為了類C語言,多少影響了其面向對象的徹底性!Java是完全的面向對象語言。

·簡單性

Java就是C++語法的簡化版,我們也可以將Java稱之為「C++-」。

·高性能

Java語言本身發展中通過虛擬機的優化提升了幾十倍運行效率。比如,通過JIT(JUST IN TIME)即時編譯技術提高運行效率。將一些「熱點」字節碼編譯成本地機器碼,並將結果緩存起來,在需要的時候重新調用。這樣的話,使Java程序的執行效率大大提高,某些代碼甚至接近C++的效率。

·分布式

Java是為Internet的分布式環境設計的,因為它能夠處理TCP/IP協議。事實上,通過URL訪問一個網絡資源和訪問本地文件是一樣簡單的。Java還支持遠程方法調用(RMI,Remote Method Invocation),使程序能夠通過網絡調用方法。

·多線程

多線程的使用可以帶來更好的交互響應和實時行為。Java多線程的簡單性是Java成為主流伺服器端開發語言的主要原因之一。

·健壯性

Java是一種健壯的語言,吸收了C/C++ 語言的優點,但去掉了其影響程序健壯性的部分(如:指針、內存的申請與釋放等)。Java程序不可能造成計算機崩潰。即使Java程序也可能有錯誤。如果出現某種出乎意料之事,程序也不會崩潰,而是把該異常拋出,再通過異常處理機制加以處理。




05 Java應用程式的運行機制

計算機高級語言的類型主要有編譯型和解釋型兩種,

而Java 語言是兩種類型的結合。

Java首先利用文本編輯器編寫 Java源程序,源文件的後綴名為.java;再利用編譯器(javac)將源程序編譯成字節碼文件,字節碼文件的後綴名為.class;最後利用虛擬機(解釋器,java)解釋執行。




06 Java中的JVM,JRM和JDK

JVM(Java Virtual Machine)就是一個虛擬的用於執行bytecode字節碼的」虛擬計算機」。他也定義了指令集、寄存器集、結構棧、垃圾收集堆、內存區域。JVM負責將Java字節碼解釋運行,邊解釋邊運行,這樣,速度就會受到一定的影響。

不同的作業系統有不同的虛擬機。Java 虛擬機機制屏蔽了底層運行平台的差別,實現了「一次編譯,隨處運行」。Java虛擬機是實現跨平台的核心機制。如圖所示:

Java Runtime Environment (JRE) 包含:Java虛擬機、庫函數、運行Java應用程式所必須的文件。

Java Development Kit (JDK)包含:包含JRE,以及增加編譯器和調試器等用於程序開發的文件。

JDK、JRE和JVM的關係如圖1-7所示。

注意點!:

如果只是要運行Java程序,只需要JRE就可以。JRE通常非常小,其中包含了JVM。

如果要開發Java程序,就需要安裝JDK。


關鍵字: