當前位置:編程學習大全網 - 源碼下載 - java怎麽根據word邐募蓋ord文件,解決了立馬給分

java怎麽根據word邐募蓋ord文件,解決了立馬給分

Java是壹種廣泛使用的計算機編程語言,擁有跨平臺、面向對象、泛型編程的特性,廣泛應用於企業級Web應用開發和移動應用開發。

任職於太陽微系統的詹姆斯·高斯林等人於1990年代初開發Java語言的雛形,最初被命名為Oak,目標設置在家用電器等小型系統的程序語言,應用在電視機、電話、鬧鐘、烤面包機等家用電器的控制和通信。由於這些智能化家電的市場需求沒有預期的高,Sun公司放棄了該項計劃。隨著1990年代互聯網的發展,Sun公司看見Oak在互聯網上應用的前景,於是改造了Oak,於1995年5月以Java的名稱正式發布。Java伴隨著互聯網的迅猛發展而發展,逐漸成為重要的網絡編程語言。

Java編程語言的風格十分接近C++語言。繼承了C++語言面向對象技術的核心,Java舍棄了C++語言中容易引起錯誤的指針,改以引用取代,同時移除原C++與原來運算符重載,也移除多重繼承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型編程、類型安全的枚舉、不定長參數和自動裝/拆箱特性。太陽微系統對Java語言的解釋是:“Java編程語言是個簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言”

Java不同於壹般的編譯語言或直譯語言。它首先將源代碼編譯成字節碼,然後依賴各種不同平臺上的虛擬機來解釋執行字節碼,從而實現了“壹次編寫,到處運行”的跨平臺特性。在早期JVM中,這在壹定程度上降低了Java程序的運行效率。但在J2SE1.4.2發布後,Java的運行速度有了大幅提升。

與傳統類型不同,Sun公司在推出Java時就將其作為開放的技術。全球數以萬計的Java開發公司被要求所設計的Java軟件必須相互兼容。“Java語言靠群體的力量而非公司的力量”是 Sun公司的口號之壹,並獲得了廣大軟件開發商的認同。這與微軟公司所倡導的註重精英和封閉式的模式完全不同,此外,微軟公司後來推出了與之競爭的.NET平臺以及模仿Java的C#語言。後來Sun公司被甲骨文公司並購,Java也隨之成為甲骨文公司的產品。

現時,移動操作系統Android大部分的代碼采用Java 編程語言編程。

早期的Java

Java的發明人詹姆斯·高斯林

Duke,Java語言的吉祥物

語言最開始只是Sun計算機(Sun MicroSystems)公司在1990年12月開始研究的壹個內部項目。Sun計算機公司的壹個叫做帕特裏克·諾頓的工程師被公司自己開發的C++和C語言編譯器搞得焦頭爛額,因為其中的API極其難用。帕特裏克決定改用NeXT,同時他也獲得了研究公司的壹個叫做“Stealth計劃”的項目的機會。

“Stealth計劃”後來改名為“Green計劃”,詹姆斯·高斯林和麥克·舍林丹也加入了帕特裏克的工作小組。他們和其他幾個工程師壹起在加利福尼亞州門羅帕克市沙丘路的壹個小工作室裏面研究開發新技術,瞄準下壹代智能家電(如微波爐)的程序設計,Sun公司預料未來科技將在家用電器領域大顯身手。團隊最初考慮使用C++語言,但是很多成員包括Sun的首席科學家比爾·喬伊,發現C++和可用的API在某些方面存在很大問題。

工作小組使用的是嵌入式系統,可以用的資源極其有限。很多成員發現C++太復雜以至很多開發者經常錯誤使用。他們發現C++缺少垃圾回收系統,還有可移植的安全性、分布程序設計、和多線程功能。最後,他們想要壹種易於移植到各種設備上的平臺。

根據可用的資金,喬伊決定開發壹種集C語言和Mesa語言大成的新語言,在壹份報告上,喬伊把它叫做“未來”,他提議Sun公司的工程師應該在C++的基礎上,開發壹種面向對象的環境。最初,高斯林試圖修改和擴展C++的功能,他自己稱這種新語言為C++ ++ --,但是後來他放棄了。他將要創造出壹種全新的語言,被他命名為“Oak”(橡樹),以他的辦公室外的橡樹命名。

就像很多開發新技術的秘密工程壹樣,工作小組沒日沒夜地工作到了1993年的夏天,他們能夠演示新平臺的壹部分了,包括Green操作系統,Oak的程序設計語言,類庫及其硬件。最初的嘗試是面向壹種類PDA設備,被命名為Star7,這種設備有鮮艷的圖形界面和被稱為“Duke”的智能代理來幫助用戶。1992年12月3日,這臺設備進行了展示。

同年11月,Green計劃被轉化成了“FirstPerson有限公司”,壹個Sun公司的全資子公司,團隊也被重新安排到了帕洛阿爾托。FirstPerson團隊對建造壹種高度交互的設備感興趣,當時代華納發布了壹個關於電視機頂盒的征求提議書時(Request for proposal),FirstPerson改變了他們的目標,作為對征求意見書的響應,提出了壹個機頂盒平臺的提議。但是有線電視業界覺得FirstPerson的平臺給予用戶過多的控制權,因此FirstPerson的投標敗給了SGI。與3DO公司的另外壹筆關於機頂盒的交易也沒有成功,由於他們的平臺不能在電視工業產生任何效益,公司被並回Sun公司。

Java和互聯網

1994年6月,在經歷了壹場歷時三天的腦力激蕩的討論後,約翰·蓋吉、詹姆斯·高斯林、比爾·喬伊、帕特裏克·諾頓、韋恩·羅斯因和埃裏克·斯庫米,團隊決定再壹次改變了努力的目標,這次他們決定將該技術應用於萬維網。他們認為隨著Mosaic瀏覽器的到來,因特網正在向同樣的高度互動的遠景演變,而這壹遠景正是他們在有線電視網中看到的。作為原型,帕特裏克·諾頓寫了壹個小型萬維網瀏覽器,WebRunner,後來改名為HotJava[12]。

1994年10月,HotJava和Java平臺為公司高層進行演示。1994年,Java

1.0a版本已經可以提供下載,但是Java和HotJava瀏覽器的第壹次公開發布卻是在1995年3月23日SunWorld大會上進行的。升陽公司的科學指導約翰·蓋吉宣告Java技術。這個發布是與網景公司的執行副總裁馬克·安德森的驚人發布壹起進行的,宣布網景將在其瀏覽器中包含對Java的支持。1996年1月,升陽公司成立了Java業務集團,專門開發Java技術。

Java和“Java”

由於商標搜索顯示,Oak已被壹家顯示卡制造商註冊。於是同年,Oak被改名為Java。當使用十六進制編輯器打開由Java源代碼編譯出的二進制文件(.class文件)的話,最前面的32位將顯示為CA FE BA BE,即詞組“CAFE BABE”(咖啡屋寶貝)。

Java近況

壹套Java編輯器軟件

J2SE環境與CDC的關連

JVM的所在角色

JSPX網頁的概念

在流行幾年之後,Java在瀏覽器中的地位被逐步侵蝕。它在簡單交互性動畫方面的用途已經完全被Adobe公司的Flash排擠,2005年Java傾向只被用於雅虎遊戲那樣的更為復雜的應用程序。Java同時遭受到來自微軟的反對,他們決定在新版本的Internet Explorer和Windows中不再附帶Java平臺。

與此相反。在萬維網的服務器端和手持設備上,Java變得更加流行。很多網站在後端使用JSP和其他的Java技術。

在桌面系統上,獨立的Java程序還是相對少見,這是因為Java平臺的運行開銷較大,而許多人的電腦上沒有安裝Java,由於網絡帶寬在以前較小,下載Java曾經是個耗時的事情。但是隨著計算機計算能力、網絡帶寬在10年中獲取了很大的進步,同時虛擬機和編譯器的質量得到了提高,許多應用程序得到了廣泛的使用,包括:

開源軟件:

NetBeans和Eclipse等軟件開發工具

Android操作系統

JEdit

Azureus BitTorrent客戶端。

JNode操作系統

Apache軟件基金會的Ant、Derby、Hadoop、Jakarta、POI和Tomcat

JBoss和GlassFish應用服務器

商業軟件:

EIOffice(永中Office)

Minecraft

純Java 3D遊戲合金戰士Chrome

IBM Websphere、ColdFusion和WebLogic

IntelliJ IDEA

還有許多用Java寫的軟件,可以在 找到。在以下網頁可以看到非常多用Java寫的程序:/products/ 下面有大量用Java Swing開發的桌面Java程序 /products/jfc/tsc/sightings/ 目前Java提供以下三個版本:

Java Platform, Enterprise Edition(Java EE:Java平臺企業版)

Java Platform, Standard Edition(Java SE:Java平臺標準版)

Java Platform, Micro Edition(Java ME:Java平臺微型版)

Java Platform, Card Edition

Java開放源代碼項目

2006年SUN在JavaOne公布Java 開放源代碼項目,並推出OpenJDK項目。[13]Java虛擬機、Java編譯器和Java類庫以GNU通用公***許可證公開。

版本歷史

主條目:Java版本歷史

1995年5月23日,Java語言誕生

1996年1月,第壹個JDK-JDK1.0誕生

1996年4月,10個最主要的操作系統供應商申明將在其產品中嵌入JAVA技術

1996年9月,約8.3萬個網頁應用了JAVA技術來制作

1997年2月18日,JDK1.1發布

1997年4月2日,JavaOne會議召開,參與者逾壹萬人,創當時全球同類會議規模之紀錄

1997年9月,JavaDeveloperConnection社區成員超過十萬

1998年2月,JDK1.1被下載超過2,000,000次

1998年12月8日,JAVA2企業平臺J2EE發布

1999年6月,SUN公司發布Java的三個版本:標準版(J2SE)、企業版(J2EE)和微型版(J2ME)

2000年5月8日,JDK1.3發布

2000年5月29日,JDK1.4發布

2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機

2001年9月24日,J2EE1.3發布

2002年2月26日,J2SE1.4發布,自此Java的計算能力有了大幅提升

2004年9月30日18:00PM,J2SE1.5發布,成為Java語言發展史上的又壹裏程碑。為了表示該版本的重要性,J2SE1.5更名為Java SE 5.0

2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名,以取消其中的數字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME

2006年12月,SUN公司發布JRE6.0

2009年12月,SUN公司發布Java EE 6

2010年11月,由於Oracle公司對於Java社區的不友善,因此Apache揚言將退出JCP[14]

2011年7月28日,Oracle公司發布Java SE 7

2014年3月18日,Oracle公司發表Java SE 8

語言特性

Java之所以被開發,是要達到以下五個目的:

應當使用面向對象程序設計方法學

應當允許同壹程序在不同的計算機平臺執行

應當包括內建的對計算機網絡的支持

應當被設計成安全地執行遠端代碼

應當易於使用,並借鑒以前那些面向對象語言(如C++)的長處。

Java技術主要分成幾個部分:Java語言、Java運行環境、類庫。壹般情況下說Java時並不區分指的是哪個部分。

Java在1.5版本時,做了重大改變,Sun公司並1.5版本重命名為Java 5.0。

面向對象

Java的特點之壹就是面向對象,是程序設計方法的壹種。“面向對象程序設計語言”的核心之壹就是開發者在設計軟件的時候可以使用自定義的類型和關聯操作。代碼和數據的實際集合體叫做“對象”。壹個對象可以想象成綁定了很多“行為(代碼)”和“狀態(數據)”的物體。對於數據結構的改變需要和代碼進行通信然後操作,反之亦然。面向對象設計讓大型軟件工程的計劃和設計變得更容易管理,能增強工程的健康度,減少失敗工程的數量。

跨平臺性

Java語言的第二個特性就是跨平臺性,也就是說使用Java語言編寫的程序可以在編譯後不用經過任何更改,就能在任何硬件設備條件下運行。這個特性經常被稱為“壹次編譯,到處運行”。

執行Java應用程序必須安裝爪哇運行環境(Java Runtime Environment,JRE),JRE內部有壹個Java虛擬機(Java Virtual Machine,JVM)以及壹些標準的類庫(Class Library)。通過JVM才能在電腦系統執行Java應用程序(Java Application),這與.Net Framework的情況壹樣,所以電腦上沒有安裝JVM,那麽這些程序將不能夠執行。

實現跨平臺性的方法是大多數編譯器在進行Java語言程序的編碼時候會生成壹個用字節碼寫成的“半成品”,這個“半成品”會在Java虛擬機(解釋層)的幫助下運行,虛擬機會把它轉換成當前所處硬件平臺的原始代碼。之後,Java虛擬機會打開標準庫,進行數據(圖片、線程和網絡)的訪問工作。主要註意的是,盡管已經存在壹個進行代碼翻譯的解釋層,有些時候Java的字節碼代碼還是會被JIT編譯器進行二次編譯。

有些編譯器,比如GCJ,可以自動生成原始代碼而不需要解釋層。但是這些編譯器所生成的代碼只能應用於特定平臺。並且GCJ目前只支持部分的Java API。

甲骨文公司對於Java的許可是“全兼容的”,這也導致了微軟和升陽關於微軟的程序不支持RMI和JNI接口、並且增加特性為己所用的法律爭端。升陽最終贏得了官司,獲得了大約兩千萬美元的賠償,法院強制要求微軟執行升陽公司關於Java的許可要求。作為回應,微軟不再在Windows系統中捆綁Java,最新的Windows版本,Windows Vista和Internet Explorer 7.0版本也不再提供對於Java應用程序和控件的支持。但是升陽公司和其他使用Java運行時系統的公司在Windows操作系統下對用戶提供無償的第三方插件和程序支持。

Java語言使用解釋層最初是為了輕巧性。所以這些程序的運行效率比C語言和C++要低很多,用戶也對此頗有微詞。很多最近的調查顯示Java的程序運行速度比幾年前要高出許多,有些同樣功能的程序的效率甚至超過了C++和C語言編寫的程序[來源請求]。

Java語言在最開始應用的時候是沒有解釋層的,所有需要編譯的代碼都直接轉換成機器的原始代碼。這樣做的後果就是獲得了最佳的性能,但是程序臃腫異常。從JIT技術開始,Java的程序都經過壹次轉換之後才變成機器碼。很多老牌的第三方虛擬機都使用壹種叫做“動態編譯”的技術,也就是說虛擬機實時監測和分析程序的運行行為,同時選擇性地對程序所需要的部分進行編譯和優化。所有這些技術都改善了代碼的運行速度,但是又不會讓程序的體積變得失常。

程序的輕便性事實上是軟件編寫很難達到的壹個目標,Java雖然成功地實現了“壹次編譯,到處運行”,但是由於平臺和平臺之間的差異,所編寫的程序在轉換代碼的時候難免會出現微小的、不可察覺的錯誤和意外。有些程序員對此非常頭疼,他們嘲笑Java的程序不是“壹次編譯,到處運行”,而是“壹次編譯,到處調試”。以Java

AWT為例,早期Java

AWT內提供的按鈕、文字區等均是以計算機系統所默認的樣式而顯示。這令Java程序在有些沒有提供圖案的計算機系統產生錯誤(在Microsoft

Windows設有窗口管理器,在壹些Linux distribution則沒有)。後來SUN公司針對Java AWT壹些問題而推出Java

Swing。

平臺無關性讓Java在服務器端軟件領域非常成功。很多服務器端軟件都使用Java或相關技術建立。

自動垃圾回收(Garbage Collection)

C++語言被用戶詬病的原因之壹是大多數C++編譯器不支持垃圾收集機制。通常使用C++編程的時候,程序員於程序中初始化對象時,會在主機內存堆棧上分配壹塊內存與地址,當不需要此對象時,進行析構或者刪除的時候再釋放分配的內存地址。如果對象是在堆棧上分配的,而程序員又忘記進行刪除,那麽就會造成內存泄漏(Memory

Leak)。長此以往,程序運行的時候可能會生成很多不清除的垃圾,浪費了不必要的內存空間。而且如果同壹內存地址被刪除兩次的話,程序會變得不穩定,甚至崩潰。因此有經驗的C++程序員都會在刪除之後將指針重置為NULL,然後在刪除之前先判斷指針是否為NULL。

C++中也可以使用“智能指針”(Smart Pointer)或者使用C++托管擴展編譯器的方法來實現自動化內存釋放,智能指針可以在標準類庫中找到,而C++

(題主妳怎麽可以問這麽沙比的問題!)

托管擴展被微軟的Visual

C++

7.0及以上版本所支持。智能指針的優點是不需引入緩慢的垃圾收集機制,而且可以不考慮線程安全的問題,但是缺點是如果不善使用智能指針的話,性能有可能不如垃圾收集機制,而且不斷地分配和釋放內存可能造成內存碎片,需要手動對堆進行壓縮。除此之外,由於智能指針是壹個基於模板的功能,所以沒有經驗的程序員在需要使用多態特性進行自動清理時也可能束手無策。

Java語言則不同,上述的情況被自動垃圾收集功能自動處理。對象的創建和放置都是在內存堆棧上面進行的。當壹個對象沒有任何引用的時候,Java的自動垃圾收集機制就發揮作用,自動刪除這個對象所占用的空間,釋放內存以避免內存泄漏。

註意程序員不需要修改finalize方法,自動垃圾收集也會發生作用。但是內存泄漏並不是就此避免了,當程序員疏忽大意地忘記解除壹個對象不應該有的引用時,內存泄漏仍然不可避免。

不同廠商、不同版本的JVM中的內存垃圾回收機制並不完全壹樣,通常越新版本的內存回收機制越快,IBM、BEA、SUN等等開發JVM的公司都曾宣稱過自己制造出了世界上最快的JVM[來源請求],JVM性能的世界紀錄也在不斷的被打破並提高。

IBM有壹篇有關Java內存回收機制比不激活垃圾收集機制的C++內存處理快數倍的技術文章[15],而著名的Java技術書籍《Java編程思想》(Thinking in Java)也有壹段論述Java內存及性能達到甚至超過C++的章節[16]。

基本語法

編寫Java程序前應註意以下幾點:

大小寫敏感:Java是大小寫敏感的,這就意味著標識符Hello與hello是不同的。

類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若幹單詞組成,那麽每個單詞的首字母應該大寫,例如MyFirstJavaClass。

方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若幹單詞,則後面的每個單詞首字母大寫,例如myFirstJavaMethod。

源文件名:源文件名必須和類名相同。當保存文件的時候,妳應該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的後綴為.java。(如果文件名和類名不相同則會導致編譯錯誤)。

主方法入口:所有的Java程序由public static void main(String[] args)方法開始執行。

Java關鍵字

關鍵字 下面列出了Java關鍵字。這些關鍵字不能用於常量、變量、和任何標識符的名稱。

關鍵字

描述

abstract

抽象方法,抽象類的修飾符

assert

斷言條件是否滿足

continue

不執行循環體剩余部分

default

switch語句中的默認分支

do-while

循環語句,循環體至少會執行壹次

double

64-bit雙精度浮點數

else

if條件不成立時執行的分支

enum

枚舉類型

extends

表示壹個類是另壹個類的子類

final

表示定義常量

finally

無論有沒有異常發生都執行代碼

float

32-bit單精度浮點數

for

for循環語句

goto

用於流程跳轉(不可用,意即不可隨意跳轉)

if

條件語句

implements

表示壹個類實現了接口

import

導入類

instanceof

測試壹個對象是否是某個類的實例

int

32位整型數

interface

接口,壹種抽象的類型,僅有方法和常量的定義

long

64位整型數

native

表示方法用非java代碼實現

new

分配新的類實例

package

壹系列相關類組成壹個包

private

表示私有字段,或者方法等,只能從類內部訪問

protected

表示保護類型字段

public

表示***有屬性或者方法

return

方法返回值

short

16位數字

static

表示在類級別定義,所有實例***享的

strictfp

浮點數比較使用嚴格的規則

super

表示基類

switch

選擇語句

synchronized

表示同壹時間只能由壹個線程訪問的代碼塊

this

調用當前實例或者調用另壹個構造函數

throw

拋出異常

throws

定義方法可能拋出的異常

transient

修飾不要序列化的字段

try

表示代碼塊要做異常處理

void

標記方法不返回任何值

volatile

標記字段可能會被多個線程同時訪問,而不做同步

while

while循環

註釋

註釋作用:標識程序是幹什麽的,以及它是如何構建的。註釋幫助程序員進行相互溝通以及理解程序。註釋不是程序設計語言,所以編譯器編譯程序時忽略它們。

接口和類別

Java自帶了創建接口的類別,可以這樣使用:

public interface Deleteable {

void delete();

}

這段代碼的意思是任何實現(implement)Deleteable接口的類別都必須實現delete()方法。每個類別對這個方法的實現可以自行定制。由此概念可以引出很多種使用方法,下面是壹個類別的例子:

  • 上一篇:炒匯技術派的三大誤區?
  • 下一篇:linux文件linux文件操作系統
  • copyright 2024編程學習大全網