複製鏈接
請複製以下鏈接發送給好友

Java

鎖定
Java是一門面向對象的編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++裏難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。 [1] 
Java具有簡單性、面向對象、分佈式健壯性安全性、平台獨立與可移植性、多線程、動態性等特點。 [2]  Java可以編寫桌面應用程序、Web應用程序、分佈式系統嵌入式系統應用程序等。 [3] 
軟件名稱
Java
軟件平台
Windows、Mac OSLinuxSolaris [4] 
上線時間
1995年 [5] 
最近更新時間
2022年3月22日 [57] 
軟件語言
Java
開發商
美國Oracle
軟件授權
Oracle License [6] 
軟件版本
Java 20 [59] 
軟件大小
46 至 86 MB
應用範圍
Web開發、桌面(移動,計算機)應用開發 等 [7] 

Java發展歷程

20世紀90年代,硬件領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品(如電視機頂盒、麪包烤箱、移動電話等)的智能化程度。Sun公司為了搶佔市場先機,在1991年成立了一個稱為Green的項目小組,帕特里克、詹姆斯·高斯林、麥克·舍林丹和其他幾個工程師一起組成的工作小組在加利福尼亞州門洛帕克市沙丘路的一個小工作室裏面研究開發新技術,專攻計算機在家電產品上的嵌入式應用。
JAVA JAVA
由於C++所具有的優勢,該項目組的研究人員首先考慮採用C++來編寫程序。但對於硬件資源極其匱乏的單片式系統來説,C++程序過於複雜和龐大。另外由於消費電子產品所採用的嵌入式處理器芯片的種類繁雜,如何讓編寫的程序跨平台運行也是個難題。為了解決困難,他們首先着眼於語言的開發,假設了一種結構簡單、符合嵌入式應用需要的硬件平台體系結構併為其制定了相應的規範,其中就定義了這種硬件平台的二進制機器碼指令系統(即後來成為“字節碼”的指令系統),以待語言開發成功後,能有半導體芯片生產商開發和生產這種硬件平台。對於新語言的設計,Sun公司研發人員並沒有開發一種全新的語言,而是根據嵌入式軟件的要求,對C++進行了改造,去除了留在C++的一些不太實用及影響安全的成分,並結合嵌入式系統的實時性要求,開發了一種稱為Oak的面嚮對象語言。
由於在開發Oak語言時,尚且不存在運行字節碼的硬件平台,所以為了在開發時可以對這種語言進行實驗研究,他們就在已有的硬件和軟件平台基礎上,按照自己所指定的規範,用軟件建設了一個運行平台,整個系統除了比C++更加簡單之外,沒有什麼大的區別。1992年的夏天,當Oak語言開發成功後,研究者們向硬件生產商進行演示了Green操作系統、Oak的程序設計語言、類庫和其硬件,以説服他們使用Oak語言生產硬件芯片,但是,硬件生產商並未對此產生極大的熱情。因為他們認為,在所有人對Oak語言還一無所知的情況下,就生產硬件產品的風險實在太大了,所以Oak語言也就因為缺乏硬件的支持而無法進入市場,從而被擱置了下來。
1994年6、7月間,在經歷了一場歷時三天的討論之後,團隊決定再一次改變了努力的目標,這次他們決定將該技術應用於萬維網。他們認為隨着Mosaic瀏覽器的到來,因特網正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的。作為原型,帕特里克·諾頓寫了一個小型萬維網瀏覽器WebRunner。 [8] 
1995年,互聯網的蓬勃發展給了Oak機會。業界為了使死板、單調的靜態網頁能夠“靈活”起來,急需一種軟件技術來開發一種程序,這種程序可以通過網絡傳播並且能夠跨平台運行。於是,世界各大IT企業為此紛紛投入了大量的人力、物力和財力。這個時候,Sun公司想起了那個被擱置起來很久的Oak,並且重新審視了那個用軟件編寫的試驗平台,由於它是按照嵌入式系統硬件平台體系結構進行編寫的,所以非常小,特別適用於網絡上的傳輸系統,而Oak也是一種精簡的語言,程序非常小,適合在網絡上傳輸。Sun公司首先推出了可以嵌入網頁並且可以隨同網頁在網絡上傳輸的Applet(Applet是一種將小程序嵌入到網頁中進行執行的技術),並將Oak更名為Java。5月23日,Sun公司在Sun world會議上正式發佈Java和HotJava瀏覽器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微軟等各大公司都紛紛停止了自己的相關開發項目,競相購買了Java使用許可證,併為自己的產品開發了相應的Java平台。 [9-10] 
1996年1月,Sun公司發佈了Java的第一個開發工具包(JDK 1.0),這是Java發展歷程中的重要里程碑,標誌着Java成為一種獨立的開發工具。9月,約8.3萬個網頁應用了Java技術來製作。10月,Sun公司發佈了Java平台的第一個即時(JIT)編譯器。
1997年2月,JDK 1.1面世,在隨後的3周時間裏,達到了22萬次的下載量。4月2日,Java One會議召開,參會者逾一萬人,創當時全球同類會議規模之紀錄。9月,Java Developer Connection社區成員超過10萬。
1998年12月8日,第二代Java平台的企業版J2EE發佈。1999年6月,Sun公司發佈了第二代Java平台(簡稱為Java2)的3個版本:J2ME(Java2 Micro Edition,Java2平台的微型版),應用於移動、無線及有限資源的環境;J2SE(Java 2 Standard Edition,Java 2平台的標準版),應用於桌面環境;J2EE(Java 2Enterprise Edition,Java 2平台的企業版),應用於基於Java的應用服務器。Java 2平台的發佈,是Java發展過程中最重要的一個里程碑,標誌着Java的應用開始普及。
1999年4月27日,HotSpot虛擬機發布。HotSpot虛擬機發布時是作為JDK 1.2的附加程序提供的,後來它成為了JDK 1.3及之後所有版本的Sun JDK的默認虛擬機。 [11] 
2000年5月,JDK1.3、JDK1.4和J2SE1.3相繼發佈,幾周後其獲得了Apple公司Mac OS X的工業標準的支持。2001年9月24日,J2EE1.3發佈。2002年2月26日,J2SE1.4發佈。自此Java的計算能力有了大幅提升,與J2SE1.3相比,其多了近62%的類和接口。在這些新特性當中,還提供了廣泛的XML支持、安全套接字(Socket)支持(通過SSL與TLS協議)、全新的I/OAPI、正則表達式、日誌與斷言。2004年9月30日,J2SE1.5發佈,成為Java語言發展史上的又一里程碑。為了表示該版本的重要性,J2SE 1.5更名為Java SE 5.0(內部版本號1.5.0),代號為“Tiger”,Tiger包含了從1996年發佈1.0版本以來的最重大的更新,其中包括泛型支持、基本類型的自動裝箱、改進的循環、枚舉類型、格式化I/O及可變參數。
Java創始人之一:詹姆斯·高斯林 Java創始人之一:詹姆斯·高斯林
2005年6月,在Java One大會上,Sun公司發佈了Java SE 6。此時,Java的各種版本已經更名,已取消其中的數字2,如J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME。 [12] 
2006年11月13日,Java技術的發明者Sun公司宣佈,將Java技術作為免費軟件對外發布。Sun公司正式發佈的有關Java平台標準版的第一批源代碼,以及Java迷你版的可執行源代碼。從2007年3月起,全世界所有的開發人員均可對Java源代碼進行修改。 [13] 
2009年,甲骨文公司宣佈收購Sun。 [14] 
2010年,Java編程語言的共同創始人之一詹姆斯·高斯林從Oracle公司辭職。2011年,甲骨文公司舉行了全球性的活動,以慶祝Java7的推出,隨後Java7正式發佈。
2014年,甲骨文公司發佈了Java8正式版。 [15] 
2017 年 9 月 22 日,Java 9正式發佈,帶來了很多新特性,其中最主要的變化是已經實現的模塊化系統。 [56] 
2024年3月20日,甲骨文正式發佈Java 22。Java 22 (Oracle JDK 22) 在性能、穩定性和安全性方面進行了數千種改進,包括對Java語言、其API和性能,以及Java開發工具包(JDK)中工具的增強功能,以幫助開發人員提高工作效率。 [60] 

Java編程開發

Java編程環境

JDK(Java Development Kit)稱為Java開發包或Java開發工具,是一個編寫Java的Applet小程序和應用程序的程序開發環境。JDK是整個Java的核心,包括了Java運行環境(Java Runtime Environment),一些Java工具和Java的核心類庫(Java API)。不論什麼Java應用服務器實質都是內置了某個版本的JDK。主流的JDK是Sun公司發佈的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如,IBM公司開發的JDK,BEA公司的Jrocket,還有GNU組織開發的JDK。 [17] 
Java概念圖 Java概念圖 [16]
另外,可以把Java API類庫中的Java SE API子集和Java虛擬機這兩部分統稱為JRE(Java Runtime Environment),JRE是支持Java程序運行的標準環境。 [18] 
JRE是個運行環境,JDK是個開發環境。因此寫Java程序的時候需要JDK,而運行Java程序的時候就需要JRE。而JDK裏面已經包含了JRE,因此只要安裝了JDK,就可以編輯Java程序,也可以正常運行Java程序。但由於JDK包含了許多與運行無關的內容,佔用的空間較大,因此運行普通的Java程序無須安裝JDK,而只需要安裝JRE即可。 [19] 

Java編程工具

Eclipse:一個開放源代碼的、基於Java的可擴展開發平台。 [20] 
NetBeans:開放源碼的Java集成開發環境,適用於各種客户機和Web應用。
IntelliJ IDEA:在代碼自動提示、代碼分析等方面的具有很好的功能。 [21] 
MyEclipse:由Genuitec公司開發的一款商業化軟件,是應用比較廣泛的Java應用程序集成開發環境。 [22] 
EditPlus:如果正確配置Java的編譯器“Javac”以及解釋器“Java”後,可直接使用EditPlus編譯執行Java程序。 [23] 

Java語言特點

Java簡單性

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。例如,Java不支持goto語句,代之以提供breakcontinue語句以及異常處理。Java還剔除了C++的操作符過載overload和多繼承特徵,並且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用户不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。

Java面向對象

Java是一個面向對象的語言。對程序員來説,這意味着要注意其中的數據和操縱數據的方法(method),而不是嚴格地用過程來思考。在一個面向對象的系統中,類class是數據和操作數據的方法的集合。數據和方法一起描述對象(object)的狀態和行為。每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。
Java還包括一個類的擴展集合,分別組成各種程序包Package,用户可以在自己的程序中使用。例如,Java提供產生圖形用户接口部件的類(java.awt包),這裏awt是抽象窗口工具集(abstract windowing toolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網絡功能的類(java.net包)

Java分佈性

Java設計成支持在網絡上應用,它是分佈式語言。Java既支持各種層次的網絡連接,又以Socket類支持可靠的流(stream)網絡連接,所以用户可以產生分佈式的客户機和服務器。
網絡變成軟件應用的分佈運載工具。Java程序只要編寫一次,就可到處運行。

Java編譯和解釋性

Java編譯程序生成字節碼(byte-code),而不是通常的機器碼。Java字節碼提供對體系結構中性的目標文件格式,代碼設計成可有效地傳送程序到多個平台。Java程序可以在任何實現了Java解釋程序和運行系統(run-time system)的系統上運行。
在一個解釋性的環境中,程序開發的標準“鏈接”階段大大消失了。如果説Java還有一個鏈接階段,它只是把新類裝進環境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導致快速程序開發。這是一個與傳統的、耗時的“編譯、鏈接和測試”形成鮮明對比的精巧的開發過程。

Java穩健性

Java原來是用作編寫消費類家用電子產品軟件的語言,所以它是被設計成寫高可靠和穩健軟件的。Java消除了某些編程錯誤,使得用它寫可靠軟件相當容易。
Java Java
Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風格的隱式聲明。這些嚴格的要求保證編譯程序能捕捉調用錯誤,這就導致更可靠的程序。
可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數據的可能性。類似地,Java自動的“無用單元收集”預防存儲漏泄和其它有關動態存儲分配和解除分配的有害錯誤。Java解釋程序也執行許多運行時的檢查,諸如驗證所有數組和串訪問是否在界限之內。
異常處理是Java中使得程序更穩健的另一個特徵。異常是某種類似於錯誤的異常條件出現的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復的任務。

Java安全性

Java的存儲分配模型是它防禦惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內幕和偽造指針去指向存儲器。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。
Java運行系統使用字節碼驗證過程來保證裝載到網絡上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預防惡意的小應用程序用它自己的版本來代替標準Java類。

Java可移植性

Java使得語言聲明不依賴於實現的方面。例如,Java顯式説明每個基本數據類型的大小和它的運算行為(這些數據類型由Java語法描述)
Java環境本身對新的硬件平台和操作系統是可移植的。Java編譯程序也用Java編寫,而Java運行系統用ANSIC語言編寫。

Java高性能

Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設計者製作了“及時”編譯程序,它能在運行時把Java字節碼翻譯成特定CPU(中央處理器)的機器代碼,也就是實現全編譯了。
Java字節碼格式設計時考慮到這些“及時”編譯程序的需要,所以生成機器代碼的過程相當簡單,它能產生相當好的代碼。

Java多線程性

Java是多線程語言,它提供支持多線程的執行(也稱為輕便過程),能處理不同任務,使具有線索的程序設計很容易。Java的lang包提供一個Thread類,它支持開始線索、運行線索、停止線索和檢查線索狀態的方法。
Java的線索支持也包括一組同步原語。這些原語是基於監督程序和條件變量風範,由C.A.R.Haore開發的廣泛使用的同步化方案。用關鍵詞synchronized,程序員可以説明某些方法在一個類中不能併發地運行。這些方法在監督程序控制之下,確保變量維持在一個一致的狀態。

Java動態性

Java語言設計成適應於變化的環境,它是一個動態的語言。例如,Java中的類是根據需要載入的,甚至有些是通過網絡獲取的。 [24] 

Java工作原理

由四方面組成:
工作原理 工作原理
(1)Java編程語言
(2)Java類文件格式
(3)Java虛擬機
(4)Java應用程序接口 [25] 
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟件(例如記事本、寫字板、UltraEdit等)或集成開發環境Eclipse、MyEclipse等)在Java源文件中定義不同的類,通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的字節碼,調用class文件中實現的方法來滿足程序的Java API調用。 [26] 

Java語言基礎

Java基本數據結構

在Java中有8種數據類型來存儲數值、字符和布爾值。
整數類型
整數型用來存儲整數數值,即沒有小數部分的數值。可以是正數,也可以是負數。整數數據在Java程序中有3種表示形式,分別為十進制、八進制和十六進制。
整型數據根據它所佔內容大小的不同可分為4種類型。
數據類型
內存
byte
8位
short
16位
int
32位
long
64位
浮點類型
數據類型
內存
float
32位
double
64位
字符類型
字符類型用於存儲單個字符,佔用16位(兩個字節)的內存空間。在定義字符型變量時,要以單引號表示。使用char關鍵字可定義字符變量。
數據類型
內存
char
16位
布爾類型
布爾類型又稱邏輯類型,通過關鍵字boolean來定義布爾類型變量,只有只有true和false兩個取值,分別代表布爾邏輯中的“真”和“假”。布爾類型通常被用在流程控制中作為判斷條件。

Java關鍵字

關鍵字
含義
abstract
抽象類或方法
assert
用來查找內部程序錯誤
break
跳出一個switch或循環
byte
8位整數類型
case
switch的一個分支
catch
捕獲異常的try塊子句
class
定義一個類類型
continue
在循環末尾繼續
default
switch的缺省語句
do
do/while循環最前面的語句
double
雙精度浮點數類型
else
if語句的else子句
enum
枚舉類型
extends
定義一個類的父類
final
一個常量,或不能覆蓋的一個類或方法
finally
try塊中總會執行的部分
float
單精度浮點數類型
for
一個循環類型
if
一個條件語句
implements
定義一個類實現的接口
import
導入一個包
instanceof
測試一個對象是否是某個類的實例
int
32位整型數
interface
接口,一種抽象類型,僅有方法和常量的定義
long
64位長整數型
native
由宿主系統實現的一個方法
new
分配新的類實例
null
一個空引用
package
包含類的一個包
private
表示私有字段,或者方法等,只能從類內部訪問
protected
表示保護類型字段
public
表示共有屬性或者方法
return
從一個方法中返回
short
16位整數類型
static
這個特性是這個類特有的,而不屬於這個類的對象
strictfp
對浮點數計算使用嚴格的規則
super
超類對象或構造函數
switch
選擇語句
synchronized
對線程而言是原子的方法或代碼塊
this
當前類的一個方法或構造函數的隱含參數
throw
拋出一個異常
throws
一個方法可能拋出的異常
transient
標誌非永久性的數據
try
捕獲異常的代碼塊
void
標記方法不返回任何值
volatile
標記字段可能會被多個線程同時訪問,而不做同步
while
一種循環
關鍵字參考資料來源 [27] 

Java運算符

運算符是一些特殊的符號,主要用於數學函數、一些類型的賦值語句和邏輯比較方面。
賦值運算符
賦值運算符以符號“=”表示,它是一個二元運算符(對兩個操作數作處理),其功能是將右方操作數所含的值賦給左方的操作數。
例如:
int a = 100;
算術運算符
運算符
説明
+
-
*
/
%
取餘數
自增和自減運算符
自增和自減是單目運算符,可以放在操作元之前,也可以放在操作元之後。操作元必須是一個整型或浮點型變量。自增、自減運算符的作用是使變量的值增1或減1。放在操作元前面的自增、自減運算符,會先將變量的值加1或減1,然後再使該變量參與表達式的運算。放在操作元后面的自增、自減運算符,會先使變量參與表達式的運算,然後再將該變量的值加1或減1。
例如:
假設a=5
b=++a;//先將a的值加1,然後賦值給b,此時a的值為6,b的值為6
b=a++;//先將a的值賦值給b,再將a的值變為6,此時a的值為6,b的值為5
比較運算符
比較運算符屬於二元運算符,用於程序中的變量之間,變量和自變量之間以及其他類型的信息之間的比較。比較運算符的運算結果是boolean型。當運算符對應的關係成立時,運算的結果為true,否則為false。比較運算符共有6個,通常作為判斷的依據用於條件語句中。
運算符
説明
>
比較左方是否大於右方
<
比較左方是否小於右方
==
比較左方是否等於右方
> =
比較左方是否大於等於右方
<=
比較左方是否小於等於右方
!=
比較左方是否不等於右方
邏輯運算符
運算符
作用
&&
邏輯與
||
邏輯或
邏輯非
語言基礎參考資料來源 [28] 

Java程序舉例

/*一個簡單的Java應用程序,顯示內容:Hello World!
文件名為Hello.java*/
class Hello{
  //程序開始於main()
  public static void main(String args[]){
    System.out.println("Hello World!");
    
    }
 }

main方法,正如註釋所説,這是程序開始執行的第一行。對於一個Java應用程序來説,main方法是必需的,Java解釋器在沒有生成任何對象的情況下,以main作為入口來執行程序。每個類中可以定義多個方法,但main方法只能有一個。關鍵字public表示訪問權限,指明所有的類都可以使用這一方法。本例中,main必須被定義為public類型,因為當程序開始執行時它需要被它的類之外的代碼調用。關鍵字static指明該方法是一個類方法。關鍵字void指明main()方法不返回任何值。main方法圓括號中定義的String args[]是傳送給main方法的參數,參數名為args,它是類String的一個對象。方法的參數用“類名參數名”來指定,多個參數間用逗號分隔。該行的最後一個字符是“{”,它表示了main程序體的開始,一個方法中包含的所有代碼都將包括在這對花括號中間。另外,main僅是解釋器開始工作的地方,一個複雜的程序可能包含幾十個類,但這些類僅需要一個main方法。 [29] 

Java語言標準

1997年11月17日,國際標準化組織(ISO)同意採納Sun公司的專利技術——Java作為ISO標準。Java作為一個技術標準供公眾無償使用。根據ISO的批准,Sun公司將可提交Java的標準化平台規範。 [30] 
發佈時間
名稱
2000年11月15日
ISO/TS 10303-27:2000
2006年5月15日
ISO/IEC 19777-2:2006
2014年7月15日
ISO/IEC TR 13066-6:2014
2015年8月15日
ISO 20210:2015
2016年3月15日
ISO/IEC 30106-2:2016
語言標準參考資料 [31-35] 

Java語言規範

JCP(Java Community Process)是一個開放的國際組織,主要由Java開發者以及被授權者組成,職能是發展和更新Java技術規範、參考實現(RI)、技術兼容包(TCK)
JCP維護的規範包括Java ME、Java SE、Java EE、XML、OSS、JAIN等。組織成員可以提交JSR(Java Specification Requests),通過特定程序以後,進入到下一版本的規範裏面。
JSR是早期提議和最終發佈的Java平台規範的具體描述。通常,一個新的JSR的提出是為了增加或者規範Java平台的功能。某個具體的JSR由專家組共同來制定,工作由組長協調。例如,CLDC1.0(Connected Limited Device Configuration,JSR30)由Sun公司的Antero Taivalsaari擔任組長,同時專家組的成員還包括Siemens、Motorola、Nokia、Symbian等。Java ME平台規範是在JSR68中定義的,規範組長是Sun公司的Jon Courtney。
JSR完成後,相關的規範及JavaAPI會在JCP的官方網站發佈。設備製造商可以在自己的產品中實現某個JSR,如MIDP2.0(JSRll8)。但是這些都必須要通過TCK(Technology Compatibility Kit)測試以確保技術兼容性。 [36] 
按照技術類別可以分成以下幾類:
1、J2EE平台規範 [37] 
2、J2SE平台規範 [38] 
3、J2ME平台規範 [39] 
4、運營支持系統規範(OSS) [40] 
5、綜合網絡的Java 應用(JAIN) [41] 
6、XML 操作規範 [42] 

Java技術應用

JavaAndroid應用

許多的 Android應用都是Java程序員開發者開發。雖然 Android運用了不同的JVM以及不同的封裝方式,但是代碼還是用Java語言所編寫。相當一部分的手機中都支持Java遊戲,這就使很多非編程人員都認識了Java。

Java在金融業應用的服務器程序

Java在金融服務業的應用非常廣泛,很多第三方交易系統、銀行、金融機構都選擇用Java開發,因為相對而言,Java較安全。 [43]  大型跨國投資銀行用Java來編寫前台和後台的電子交易系統,結算和確認系統,數據處理項目以及其他項目。大多數情況下,Java被用在服務器端開發,但多數沒有任何前端,它們通常是從一個服務器(上一級)接收數據,處理後發向另一個處理系統(下一級處理)

Java網站

Java 在電子商務領域以及網站開發領域佔據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0以及frameworks。即使是簡單的 servlet,jsp和以struts為基礎的網站在政府項目中也經常被用到。例如醫療救護、保險、教育、國防以及其他的不同部門網站都是以Java為基礎來開發的。

Java嵌入式領域

Java在嵌入式領域發展空間很大。在這個平台上,只需130KB就能夠使用Java技術(在智能卡或者傳感器上)

Java大數據技術

Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基於Java的HBase和Accumulo以及 ElasticSearchas。

Java高頻交易的空間

Java平台提高了這個平台的特性和及時編譯,他同時也能夠像 C++ 一樣傳遞數據。正是由於這個原因,Java成為的程序員編寫交易平台的語言,因為雖然性能不比C++,但開發人員可以避開安全性,可移植性和可維護性等問題。

Java科學應用

Java在科學應用中是很好選擇,包括自然語言處理。最主要的原因是因為Java比C++或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的併發性更好。 [44] 

Java學習指南

Java考試

Sun公司的Java認證共有以下四種:Java程序員(SCJP)、Java開發員(SCJD)、Java Web組件的開發(SCWD)和Java2企業級設計師企業級技術(SCJA)。中國開展較為普遍的Java認證考試為前兩種,其中,Java程序員的認證考試以Sun公司指定的JavaSL-275為教材,考試號為310-025。Java開發員的認證考試以Sun指定的JavaSL-285為教材,機考部分的考試號為310-027。 [45] 
Sun Certified Java Programmer(SCJP)
Java 程序員認證,測試Java 程序設計的要領和能力,內容側重於Java 的語法及JDK(Java Development Kit)
Sun Certified Java Developer(SCJD)
Java 開發員認證,進一步測試用Java 開發應用程序的能力。必須先完成一個程序設計的項目後,再回答與此項目相關的幾個問題。
Sun Certified Web Component Developer for Java 2Platform Enterprise Edition(SCWD)
Web 組件開發員認證,測試技術人員對Java Servlets 和JSP(Java Server Page)的程序開發技巧。
Sun Certified Enterprise Architect for J2EE Technology(SCAJ)
Java2 企業級設計師認證是Java 最高級的認證,測試對J2EE 架構及其他系統整合的相關技術經驗及能力。 [46] 
Sun公司定製的Java程序員課程的標準課件的培訓期為5天(30個學時)。培訓期間,講師使用Sun公司指定教材,全面系統地講述課程的內容,並根據各知識點所需要掌握的深度,有層次、有重點、有目的地指導學員的學習。同時,對各種題型的分析和講解更能幫助學員直觀、準確地瞭解java認證考試。

Java教材

《Java從入門到精通(第3版)》:從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發需要掌握的知識。
《Java編程語言(第3版)》:該書向熟悉基本編程概念的人講述Java編程語言。該書解釋了Java語言,但不是晦澀的正式介紹,也沒有覆蓋Java語言的所有方面。 [47] 
《瘋狂Java講義》:該書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特徵、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC數據庫編程、Java註釋、Java的IO流體系、Java多線程編程、Java網絡通信編程和Java反射機制。 [48] 
《Java編程思想(第4版)》:以JDK5.0為基礎,在第3版的基礎上,添加了新的語言特性,並且對第3版的結構進行了調整,使得所有章節的安排更加遵照循序漸進的特點,同時每一章的內容在分量上也都更加均衡,這使讀者能夠更加容易地閲讀本書並充分了解每章所講述的內容。 [49] 
《Java經典實例(第2版)》:本書囊括了許多有用的信息。然而,由於所涉及的主題廣泛,不可能對所有主題都進行詳盡地闡述。因此,本書還提供了相關的web站點與參考書籍。這也是為了本書的目標讀者:想學習更多Java的人。 [50] 
《Java語言程序設計》:該書是清華大學出版社《普通高校本科計算機專業特色教材精選》叢書之一,也是普通高等教育“十一五” 國家級規劃教材。該教材以培養應用型計算機人才為目標,立足課程改革和教材創新,在總結作者多年來從事Java語言教學工作經驗的基礎上形成了教材的核心內容。本教材可為普通高等院校計算機專業學生學習使用,也適用於自學。 [51] 
Java編程方法論》:該書從多個視角對Java編程進行了系統的介紹,並通過向讀者呈現出優秀設計,為讀者更深入、更全面地瞭解和掌握Java編程設計思想與技巧提供了有效的借鑑,既可以供有Java編程基礎的愛好者進行學習,也可作為Java開發工程師的參考書籍。 [58] 

Java語言評價

Java發展前景

計算機的誕生及廣泛應用推動了IT領域的發展,但21世紀的計算機早已不是訪問INTERNET的唯一的途徑。各類更具信息化的電子產品逐漸進入IT領域,推動了PC時代的大發展。由於各種消費信息的急劇增加,傳統的客户機的各方面條件均不如PC,PC的發展對服務器的應用管理體統也提出了更高標準。Java語言完全滿足了PC的條件,在減少內存,直接在各類電子產品中運行,在網絡中可被任何設備所識別,充分利用網絡資源等方面有所突破創新,為PC時代的發展創造了有力條件。
Java Java
隨着IT產業的發展,許多企業中的計算機應用程序也在隨之轉型,企業中所應用的計算機模式逐漸向客户端較小、服務器隨之增大、數據庫的容量也在相應增加的方向轉變。此外,加上Java語言獨有的特點,根據其在各項服務器中應用程序的開發所佔有的優勢,企業版的J2SE為企業環境中計算機模式的應用提供了良好的平台。
Java語言為與數據庫聯繫緊密設計了Java servlet和SQL-J技術,以及JSP技術。隨着JSP技術的發展,使Java語言的網絡應用更為實際化、更高效快捷,成為IT產業常用的技術。JSP以Java語言作為其服務器端的使用語言,結合了Java Script等多種其他客户端語言,使網絡瀏覽器更為方便的展現。 [52] 
在遠程網絡教學方面,由於Java改變了傳統的基於Microsoft Front Page或HTML語言製作的Web頁面形態,使網絡遠程教學更加朝着動態、便捷化、安全化的方向發展,豐富了網絡遠程教學的手段和覆蓋面。 [53] 

Java貢獻及影響力

Java 語言是一門隨時代快速發展的計算機語言程序,其深刻展示了程序編寫的精髓,加上其簡明嚴謹的結構及簡潔的語法編寫為其將來的發展及維護提供了保障。由於提供了網絡應用的支持和多媒體的存取,會推動Internet和企業網絡的Web的應用。 [54]  另外,為了保持Java的增長和推進Java社區的參與,Sun公司在Java One開發者大會上宣佈開放Java核心源代碼,以鼓勵更多的人蔘與到Java社團活動中。來自Java社團和IBM等全球技術合作夥伴兩方面的支持,Java技術在創新和社會進步上繼續發揮強有力的重要作用,並且隨着其程序編寫難度的降低使得更多專業人員將精力放置於Java語言的編寫與框架結構的設計中。 [55] 
參考資料
  • 1.    李剛.瘋狂Java講義(第2版):電子工業出版社,2014:2
  • 2.    趙景暉.Java 程序設計:北京機械工業出版社,2005:1-2
  • 3.    明日科技.Java從入門到精通(第3版):清華大學出版社,2014
  • 4.    適用於所有操作系統的 Java  .Java.2020-10-20[引用日期2020-12-25]
  • 5.    使用 Java 有哪些系統要求  .Java.2020-01-05[引用日期2020-12-25]
  • 6.    Oracle Java SE 許可  .Oracle.2019-04-06[引用日期2020-12-25]
  • 7.    瞭解 Java 技術  .Java.2020-01-05[引用日期2020-12-25]
  • 8.    李晉.Java的昨天,今天和明天[J].信息與電腦,2011(1).
  • 9.    任哲.JAVA技術應用基礎:機械工業出版社,2009:4-6
  • 10.    董雲錚,陳千,梅惠平.Java技術應用:清華大學出版社,2007:2
  • 11.    周志明.深入理解Java虛擬機:機械工業出版社,2011:6
  • 12.    李明,陳京民,陶飛飛.Java程序設計與應用 :清華大學出版社,2010:3-4
  • 13.    鄭悦.2006:開源精彩一年[J].中國計算機用户,2006(50).
  • 14.    詳訊:甲骨文將以74億美元收購Sun  .新浪[引用日期2016-05-31]
  • 15.    Oracle發佈Java 8正式版及JDK 8  .CSDN[引用日期2016-05-30]
  • 16.    Java Platform Standard Edition 8 Documentation  .oracle[引用日期2016-05-31]
  • 17.    王薇,杜威.Java程序設計與實踐:華中科技大學出版社,2010:9
  • 18.    周志明.深入理解Java虛擬機:機械工業出版社,2011:4
  • 19.    王薇,杜威.Java程序設計與實踐:華中科技大學出版社,2010:10
  • 20.    Eclipse  .Eclipse官網[引用日期2016-05-31]
  • 21.    idea  .idea[引用日期2016-05-27]
  • 22.    徐林林.零點起飛學Java Web開發:清華大學出版社,2013:19
  • 23.    那些年,Java程序員用過的開發工具  .CSDN[引用日期2016-05-30]
  • 24.    程虎.Java語言的特點[J].現代科學儀器,1997(2).
  • 25.    毛玉萃,邱少明,楊文豔.軟件項目實踐案例教程:清華大學出版社,2014:42
  • 26.    王薇,杜威.Java程序設計與實踐:華中科技大學出版社,2010:8
  • 27.    Cay S. Horstmann.Java核心技術(卷I):機械工業出版社,2008
  • 28.    明日科技.Java從入門到精通(第3版).北京清華大學學研大廈A座:清華大學出版社,2014:39-55
  • 29.    董雲錚,陳千,梅惠平.Java技術應用:北京交通大學出版社,2007:5-9
  • 30.    馬爾平,天舒.計算機英語速查手冊:中國石化出版社,2001:508
  • 31.    ISO 20210:2015  .ISO[引用日期2016-06-03]
  • 32.    ISO/IEC 19777-2:2006  .ISO[引用日期2016-06-03]
  • 33.    ISO/IEC TR 13066-6:2014  .ISO[引用日期2016-06-03]
  • 34.    ISO/IEC 30106-2:2016  .ISO[引用日期2016-06-03]
  • 35.    ISO/TS 10303-27:2000  .ISO[引用日期2016-06-03]
  • 36.    戴麗萍,李磊,許永輝.Java ME手機遊戲開發從入門到精通:國防工業出版社,2009:6
  • 37.    Java SE  .Java Community Process[引用日期2016-06-02]
  • 38.    Java SE  .Java Community Process[引用日期2016-06-02]
  • 39.    Java ME  .Java Community Process[引用日期2016-06-02]
  • 40.    OSS  .Java Community Process[引用日期2016-06-02]
  • 41.    JAIN  .Java Community Process[引用日期2016-06-02]
  • 42.    XML  .Java Community Process[引用日期2016-06-02]
  • 43.    李鍾尉,陳丹丹,張振坤.Java編程寶典:人民郵電出版社,2010:5
  • 44.    現實世界中哪些地方用到了Java  .CSDN.2014-12-10[引用日期2016-05-30]
  • 45.    柳芳.關於SUN公司的Java認證考試[J].電腦知識與技術,2003(2).
  • 46.    邵軍.Sun認證介紹[J].繼續教育,2002(4).
  • 47.    Ken Arnold.Java編程語言(第3版):中國電力出版社,2003
  • 48.    李剛.瘋狂Java講義(第3版):電子工業出版社,2014
  • 49.    Bruce Eckel.Java編程思想(第4版):機械工業出版社,2007
  • 50.    Darwin.Java經典實例(第二版):中國電力出版社,2009
  • 51.    呂鳳翥,馬皓.普通高等教育“ 十一五” 國家級規劃教材——《Java語言程序設計》[J].計算機教育,2007(23).
  • 52.    孫媛.討論JAVA語言的現狀及發展[J].科技傳播,2010(7).
  • 53.    劉振東.JAVA語言在遠程網絡教學中的應用[J].計算機教學與教育信息化,2011(12).
  • 54.    王汝傳.一種新型的程序設計語言——JAVA語言[J].南京郵電學院學報,1996(16).
  • 55.    付瑋.Java語言及其開發技術的回顧與展望[J].科技廣場,2007(3).
  • 56.    Java 9 新特性 | 菜鳥教程  .runoob[引用日期2022-03-20]
  • 57.    Oracle Announces Java 18  .Oracle(甲骨文公司)[引用日期2022-05-01]
  • 58.    李瑞歌.計算機軟件開發的Java編程語言及應用——評《Java編程方法論》[J].中國科技論文,2022,17(1):I0018
  • 59.    甲骨文正式發佈 Java 20  .oracle[引用日期2023-08-13]
  • 60.    甲骨文正式發佈Java 22  .界面新聞.2024-03-20[引用日期2024-03-20]
展開全部 收起