第講Java語言快速入門_第1頁
第講Java語言快速入門_第2頁
第講Java語言快速入門_第3頁
第講Java語言快速入門_第4頁
第講Java語言快速入門_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、JAVA 語言JAVA語言第1講2學(xué)習(xí)要點(diǎn)學(xué)習(xí)要點(diǎn)n了解Java的發(fā)展歷史n了解Java的特點(diǎn)n理解面向?qū)ο蟪绦蛟O(shè)計(jì)方法及三種特性n掌握J(rèn)ava程序開發(fā)工具JDK1.5的配置及應(yīng)用n掌握J(rèn)ava程序的基本要素及編碼規(guī)范 JAVA語言第1講31、閱讀類庫(kù)文檔,了解、掌握J(rèn)ava開發(fā)類庫(kù)的使用方法;2、多分析例子程序,多上機(jī)練習(xí)。3、了解OO的思想。4、好的參考書 推薦: Java編程思想 ,Bruce Eckel ,機(jī)械工業(yè)出版社學(xué)習(xí)方法學(xué)習(xí)方法JAVA語言第1講4 軟件的基本組成部分是完成其功能的程序。 程序設(shè)計(jì)語言(也被稱為“編程語言”,Programming Language)是人們編制程

2、序所使用的語言。 程序描述了計(jì)算機(jī)處理數(shù)據(jù)、解決問題的過程,這是程序的實(shí)質(zhì)。但程序的描述形式卻可以是多種多樣的,可以用不同的方式表述不同的程序設(shè)計(jì)語言。Preliminary:程序設(shè)計(jì)語言:程序設(shè)計(jì)語言JAVA語言第1講5Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言程序設(shè)計(jì)語言的種類:q 機(jī)器語言:機(jī)器指令,直接執(zhí)行q 匯編語言:符號(hào)化,匯編器(Assembler)q 高級(jí)程序設(shè)計(jì)語言(編譯型)q 高級(jí)程序設(shè)計(jì)語言(解釋型)JAVA語言第1講6 高級(jí)語言中用于描述計(jì)算的結(jié)構(gòu)采用類似于數(shù)學(xué)中代數(shù)運(yùn)算公式的形式,這種結(jié)構(gòu)被稱為“表達(dá)式”。程序中基本的動(dòng)作單位被稱為“語句”,不同的語句實(shí)現(xiàn)不同的

3、功能。用高級(jí)語言書寫的程序不可能直接地在計(jì)算機(jī)上執(zhí)行,要在計(jì)算機(jī)上執(zhí)行高級(jí)語言書寫的程序,有兩種基本方法:q 編譯(Compilation)執(zhí)行:這種方法是設(shè)法把高級(jí)語言程序(也稱為“源程序”)轉(zhuǎn)換成為機(jī)器語言的可以由計(jì)算機(jī)直接執(zhí)行的程序,即轉(zhuǎn)變?yōu)椤翱蓤?zhí)行(Executable)程序” 。q “解釋”(Interpretation)執(zhí)行:這種方法是即時(shí)把源程序轉(zhuǎn)換為機(jī)器可執(zhí)行的指令。有時(shí)為了提高效率,也可以先編譯成一種中間代碼。Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言JAVA語言第1講7 對(duì)于“編譯執(zhí)行”方式,人們實(shí)現(xiàn)了高級(jí)語言“編譯器”(Compile

4、r)完成這種轉(zhuǎn)換工作。編譯器把高級(jí)語言程序看成是符合一定語法結(jié)構(gòu)的符號(hào)串,對(duì)它進(jìn)行加工變換。編譯器對(duì)源程序的加工一般分為兩個(gè)階段:源程序首先被翻譯成機(jī)器語言,這種翻譯結(jié)果稱為“目標(biāo)碼”(object code),目標(biāo)碼構(gòu)成的程序片段稱為目標(biāo)模塊。第二步,這些目標(biāo)模塊被與其他一些基本模塊(由編譯軟件提供)連接在一起,最終形成“可執(zhí)行程序”(executable program),這樣的程序就可以在計(jì)算機(jī)上實(shí)際運(yùn)行了。 第一個(gè)加工步驟稱為“編譯”(compiling),第二個(gè)步驟稱為“連接”(linking)。 Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言JAV

5、A語言第1講8Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言編編 譯譯 過過 程程JAVA語言第1講9 對(duì)于“解釋執(zhí)行” 方式,人們實(shí)現(xiàn)了一種稱為“解釋器”(Interpreter)的軟件來完成轉(zhuǎn)換工作。解釋器在工作方式上與編譯器不同,它不對(duì)源程序進(jìn)行翻譯,而是直接對(duì)源程序的語句進(jìn)行分析和解釋,實(shí)現(xiàn)源程序所描述的功能。Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言解解 釋釋 過過 程程JAVA語言第1講10Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言 高級(jí)語言寫出的程序是獨(dú)立于任何具體的計(jì)算

6、機(jī)的。但是“編譯器”和“解釋器”則是與機(jī)器相關(guān)的。同一種語言,對(duì)于不同的機(jī)器,需要不同的“編譯器”和“解釋器”。 人們已經(jīng)開發(fā)出了許多不同的高級(jí)程序設(shè)計(jì)語言,不同的語言有各自不同的規(guī)范,因此需要專門的“編譯器”和“解釋器”。JAVA語言第1講11q FORTRAN(FORmular TRANslation)語言,HPF:IBM,1950q Pascal語言:N.Wirth,1968,(Delphi,Borland)q COBOL(COmmon Business Oriented Language)語言: 美國(guó)國(guó)防部,1960q C和C+語言:Dennis Retchie, 1972; Bjar

7、ne Stroustrup,1983, Bellq Basic(Beginners All-purpose Symbolic Instruction Code)語言:美國(guó)國(guó)防部,1964q Ada語言:軍用程序設(shè)計(jì)語言, 美國(guó)國(guó)防部, 1983 q Java語言: 1991年,SUN MicroSystem公司Preliminary:程序設(shè)計(jì)語言程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì)語言JAVA語言第1講121.1 Java語言的發(fā)展歷史1.1.1 Java語言的發(fā)展史n1991年由James Gosling負(fù)責(zé)開發(fā)的一個(gè)分布式代碼系統(tǒng)(Oak),最初是為家用消費(fèi)電子產(chǎn)品(電冰箱、電視機(jī)等)

8、進(jìn)行編程控制 。n1993年Sun 公司將目標(biāo)市場(chǎng)轉(zhuǎn)向 Internet 。n1994年將Oak語言更名為Java。n1995年Java被正式發(fā)布,之后立即引起極大的轟動(dòng)。n1.2版本的Java是Java語言發(fā)展過程中一個(gè)關(guān)鍵階段,從此,Sun公司將Java更名為Java2。n經(jīng)過十年的發(fā)展,Java語言已經(jīng)發(fā)展到1.6版本。JAVA語言第1講131.1.2 Java與C+、C#的比較項(xiàng)目JavaC+全局變量 不存在全局變量 存在數(shù)據(jù)類型和轉(zhuǎn)換 無結(jié)構(gòu)、枚舉或者聯(lián)合,轉(zhuǎn)換時(shí)進(jìn)行類型相容檢查 通過指針進(jìn)行任意的類型轉(zhuǎn)換,帶來不安全性 范圍運(yùn)算符 無作用域范圍運(yùn)算符: 有數(shù)組 對(duì)象,有只讀的len

9、gth 無length內(nèi)存管理可創(chuàng)建不屬于基本數(shù)據(jù)類型的對(duì)象 不能提前聲明不必進(jìn)行提前聲明 必須預(yù)處理 沒有預(yù)處理機(jī)制 有頭文件 import include指針 無有g(shù)oto和virtual 無有注釋文檔 對(duì)注釋文檔的內(nèi)建支持 無JAVA語言第1講141.1.2 Java與C+、C#的比較(續(xù))nC#由Microsoft創(chuàng)建,支持其.Net架構(gòu),與JAVA密切相關(guān)。n很多C#功能直接來自JAVA,具有相同的語法風(fēng)格。nC#會(huì)取代JAVA嗎?JAVA語言第1講151.1.3 Java技術(shù)體系 針對(duì)企業(yè)計(jì)算、桌面計(jì)算和移動(dòng)計(jì)算,Java平臺(tái)提供了三個(gè)版本,形成了三大技術(shù)體系:nSUN官方網(wǎng)站下載

10、(http:/)nJava 2 Platform, Standard Edition (J2SE)nJava 2 Platform, Enterprise Edition (J2EE)nJava 2 Platform, Micro Edition (J2ME)JAVA語言第1講161.1.4 Java語言的未來Java技術(shù)誕生并發(fā)展了十幾年,從一種編程語言發(fā)展為一個(gè)平臺(tái)、一個(gè)社群、一個(gè)產(chǎn)業(yè)。目前全球至少有450萬名程序員使用Java開發(fā)軟件,14億部設(shè)備上運(yùn)行著Java編寫的程序??梢哉f是目前應(yīng)用最廣,需求最熱的軟件開發(fā)技術(shù)。n高性能企業(yè)計(jì)算(J2EE)n高性能移動(dòng)計(jì)算(J2ME)n高性能的分

11、布式計(jì)算(RMI、JINI)n嵌入式系統(tǒng)開發(fā)和設(shè)備控制n實(shí)時(shí)系統(tǒng)開發(fā)JAVA語言第1講171.2 Java語言的特點(diǎn)簡(jiǎn)單性面向?qū)ο蠓植际教幚斫研越Y(jié)構(gòu)中立安全性v系統(tǒng)精簡(jiǎn),但功能齊備。系統(tǒng)精簡(jiǎn),但功能齊備。 v風(fēng)格類似于風(fēng)格類似于C+C+,對(duì),對(duì)C+C+程程序員而言非常容易掌握。序員而言非常容易掌握。 vJavaJava摒棄了摒棄了C+C+中容易引發(fā)中容易引發(fā)程序錯(cuò)誤的地方,如指針操程序錯(cuò)誤的地方,如指針操作和內(nèi)存管理;作和內(nèi)存管理;v提供豐富的類庫(kù)。提供豐富的類庫(kù)。 完全是面向?qū)ο蟮?,完全是面向?qū)ο蟮?,它不支持類似它不支持類似C C語言那語言那樣的面向過程的程序樣的面向過程的程序設(shè)計(jì)技術(shù)。設(shè)

12、計(jì)技術(shù)。 支持支持TCP/IPTCP/IP協(xié)議。協(xié)議。JavaJava應(yīng)應(yīng)用程序可通過一個(gè)特定的用程序可通過一個(gè)特定的URLURL來打開并訪問對(duì)象,來打開并訪問對(duì)象,就像訪問本地文件系統(tǒng)那就像訪問本地文件系統(tǒng)那樣簡(jiǎn)單。樣簡(jiǎn)單。 v提供面向?qū)ο蟮漠惓L幚頇C(jī)制,提供面向?qū)ο蟮漠惓L幚頇C(jī)制,在編譯時(shí)能對(duì)在編譯時(shí)能對(duì)NullNull指針檢測(cè)、數(shù)指針檢測(cè)、數(shù)組邊界檢測(cè)、異常出口字節(jié)代碼組邊界檢測(cè)、異常出口字節(jié)代碼校驗(yàn)等。校驗(yàn)等。v自動(dòng)垃圾收集來進(jìn)行內(nèi)存管理。自動(dòng)垃圾收集來進(jìn)行內(nèi)存管理。 將源程序編譯成一種結(jié)構(gòu)將源程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只中立的中間文件格式。只要有要有JavaJava運(yùn)行系

13、統(tǒng)的機(jī)器運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。都能執(zhí)行這種中間代碼。 vJavaJava語言提供的安全。語言提供的安全。 v編譯器提供的安全。編譯器提供的安全。 v字節(jié)碼校驗(yàn)。字節(jié)碼校驗(yàn)。v類裝載。類裝載。 JAVA語言第1講181.2 Java語言的特點(diǎn)(續(xù))可移植性解釋性高性能多線程動(dòng)態(tài)JavaJava應(yīng)用程序可以在配備了應(yīng)用程序可以在配備了JavaJava解釋器和運(yùn)行環(huán)境的任解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,而與何計(jì)算機(jī)系統(tǒng)上運(yùn)行,而與體系結(jié)構(gòu)無關(guān)。體系結(jié)構(gòu)無關(guān)。 JavaJava編譯器將編譯器將javajava源文件生源文件生成類文件成類文件.class.class,類文件可,類文

14、件可通過通過javajava命令解釋執(zhí)行,將命令解釋執(zhí)行,將JavaJava字節(jié)碼轉(zhuǎn)換為機(jī)器碼。字節(jié)碼轉(zhuǎn)換為機(jī)器碼。 JITJIT編譯器??删幾g器??梢蕴岣咭蕴岣?Java Java 代代碼的執(zhí)行速度。碼的執(zhí)行速度。 內(nèi)置多線程功能,使得在一內(nèi)置多線程功能,使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。帶來的好處是更好的任務(wù)。帶來的好處是更好的交互性和實(shí)時(shí)控制性。交互性和實(shí)時(shí)控制性。 允許程序動(dòng)態(tài)地裝入運(yùn)行過允許程序動(dòng)態(tài)地裝入運(yùn)行過程中所需要的類,這是程中所需要的類,這是C+C+語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)所無法實(shí)現(xiàn)的。所無法實(shí)現(xiàn)的。 JAVA語言第1講19

15、1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)1.3.1 面向過程與面向?qū)ο?面向過程的程序設(shè)計(jì)是用結(jié)構(gòu)化編程語句來編寫程序。它把一個(gè)復(fù)雜的程序分解成若干個(gè)較小的過程,每個(gè)過程都可以單獨(dú)地設(shè)計(jì)、修改、調(diào)試。 問題數(shù)據(jù)集合過程集合結(jié)果制定表示為傳遞給計(jì)算JAVA語言第1講201.3 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)也稱為面向類的編程,把問題一般化后抽象為描述問題的類(Class),通過類的內(nèi)部數(shù)據(jù)(Field)來表示問題的狀態(tài),創(chuàng)建類的實(shí)例(Instance)來表示具體的問題,通過類或?qū)嵗姆椒?Method)的執(zhí)行得到問題的解。 問題類結(jié)果實(shí)例抽象創(chuàng)建計(jì)算JAVA語言第1講211.3.2 面向?qū)ο蟮幕咎匦詎Ja

16、va的核心是面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)。n面向?qū)ο蟪绦蛟O(shè)計(jì)采納了結(jié)構(gòu)化程序設(shè)計(jì)的思想精華,并且新增了一些概念和特性。n所有面向?qū)ο蟪绦蛟O(shè)計(jì)語言,包括Java在內(nèi),都有三個(gè)基本特性:封裝(encapsulation)多態(tài)性(polymorphism)和繼承(inheritance)JAVA語言第1講22面向?qū)ο蟮幕咎匦?.封裝:將數(shù)據(jù)成員(Data Member)和屬于此數(shù)據(jù)的操作方法(Operating Method),放在同一個(gè)實(shí)體(Entity)或?qū)ο笾小?.繼承:父類定義(Define)一些通用的屬性與行為,其子類繼續(xù)使用。3.多態(tài):在同一個(gè)類中可有許多同名的方法,但其參數(shù)數(shù)量與數(shù)據(jù)類

17、型不同,而且操作過程與返回值也可能會(huì)不同。(1 1)模塊化)模塊化 (2 2)信息隱藏信息隱藏 (1 1)實(shí)現(xiàn)代碼復(fù)用)實(shí)現(xiàn)代碼復(fù)用 (2 2)簡(jiǎn)化設(shè)計(jì)過程)簡(jiǎn)化設(shè)計(jì)過程 解決其他語言中解決其他語言中不能重名的問題不能重名的問題 JAVA語言第1講23nOOAObject Oriented Analysis 面向?qū)ο蠓治鰊OODObject Oriented Design 面向?qū)ο笤O(shè)計(jì)nOOIObject Oriented Implementation 面向?qū)ο髮?shí)現(xiàn) JAVA語言第1講241.4 Java程序的跨平臺(tái)運(yùn)行機(jī)制Source Code(源程序 *.java)Byte Code(字節(jié)

18、碼文件 *.class)JVM (Java虛擬機(jī)) JVM (Java虛擬機(jī)) JVM (Java虛擬機(jī)) WindowsLinuxUnixJAVA語言第1講251.4.1 Java程序工作機(jī)制編編 譯譯 時(shí)時(shí).java( 源源 代代 碼碼 ).class( 字字 節(jié)節(jié) 碼碼 )運(yùn)運(yùn) 行行 時(shí)時(shí)類類 加加 載載 器器字字 節(jié)節(jié) 碼碼 校校 驗(yàn)驗(yàn) 器器解解 釋釋 器器JIT代代 碼碼 生生成成 器器硬硬 件件網(wǎng)網(wǎng) 絡(luò)絡(luò)Bytecode檢查檢查限定對(duì)象的限定對(duì)象的存取權(quán)限存取權(quán)限系統(tǒng)堆棧溢出系統(tǒng)堆棧溢出參數(shù)類型一致參數(shù)類型一致程序執(zhí)行系統(tǒng)程序執(zhí)行系統(tǒng)WWW瀏覽器瀏覽器限制限制Java小應(yīng)用程序小應(yīng)

19、用程序的不正當(dāng)使用的不正當(dāng)使用JAVA語言第1講261、Java虛擬機(jī)n實(shí)現(xiàn)平臺(tái)無關(guān)性的基礎(chǔ)就是Java虛擬機(jī),是以Java字節(jié)碼為指令組的軟CPU。負(fù)責(zé)對(duì)本地*.class文件解釋執(zhí)行。nJava虛擬機(jī)包含類加載器、字節(jié)確認(rèn)器、以及JIT實(shí)時(shí)編譯器。 類加載器:用來取得從網(wǎng)絡(luò)或本地的類文件。 字節(jié)確認(rèn)器:確認(rèn)類文件是否有正確的格式。 JIT:使虛擬機(jī)能提高到編譯式的運(yùn)行效率。 JAVA語言第1講271、Java虛擬機(jī)nJVM構(gòu)成如下:n指令集(Bytecodes 是JVM的機(jī)器指令)。n寄存器組n類文件格式n棧n垃圾回收“堆”(實(shí)現(xiàn)內(nèi)存的動(dòng)態(tài)分配和自動(dòng)回收)n內(nèi)存區(qū)域JAVA語言第1講282

20、、字節(jié)碼n*.class文件與機(jī)器碼不同,不是真正的CPU可運(yùn)行的指令代碼,故又稱偽代碼。n通過JVM以及JRE將其轉(zhuǎn)成本地機(jī)器代碼,達(dá)到“一次撰寫,到處運(yùn)行” (Write Once,Run Anywhere)的效益。 nJava字節(jié)代碼運(yùn)行的兩種方式字節(jié)代碼運(yùn)行的兩種方式: Interpreter(解釋方式解釋方式) Just-in-time(即時(shí)編譯即時(shí)編譯): 由代碼生成器將字節(jié)代碼轉(zhuǎn)換成本機(jī)的機(jī)器代碼,由代碼生成器將字節(jié)代碼轉(zhuǎn)換成本機(jī)的機(jī)器代碼, 然后可以以較高速度執(zhí)行然后可以以較高速度執(zhí)行JAVA語言第1講29nJRE 是由JVM 和 java platform 核心類以及相關(guān)支撐

21、文件組成。3、JRE-java運(yùn)行時(shí)環(huán)境JAVA語言第1講30nApplication programming interfacenAPI 是rules(syntax) :在java技術(shù)中如何編程nAPI包括數(shù)百個(gè)類公司預(yù)先編好的代碼,你可以在編程中充分利用它們的功能4、APIJAVA語言第1講31nJDK java developers kit (java開發(fā)工具包)nJDK 包含JVM和其他工具,以及所有的API和相關(guān)文件。nJDK 是java 技術(shù)的舊名(1999/11以前), JDK1.1 是最后版本。nJava 2 Java 2 Platform, J2 SDK java技術(shù)的新名稱

22、nSDK Software Development Kit5、JDK、J2SDK9.2JAVA語言第1講32JVMJREJ2 SDKJVM plus basic APIs (what you need to distribute to people who will run your Java programs) JVM plus all APIs, compilers ,tools, and documentation (what you need in order to write java technology programs). JAVA語言第1講33JAVA語言第1講341.4.2

23、 Java語言的開發(fā)工具nThe J2SE System Development Kit (JDK)nJava IDE (Java集成開發(fā)環(huán)境集成開發(fā)環(huán)境)- Java Runtime Environment (JRE)- Tools (各種工具程序各種工具程序)- Java Class Library Source Files (Java類庫(kù)源碼類庫(kù)源碼)- Demo (關(guān)于各種類的例程關(guān)于各種類的例程)JAVA語言第1講35J2SDK開發(fā)環(huán)境安裝Java 2 SDK開發(fā)工具 。(安裝完成后,在安裝路徑下的bin文件夾內(nèi),有所需的各種開發(fā)工具。) 設(shè)置環(huán)境變量: path=javac和jav

24、a命令所在的目錄。 classpath=存放字節(jié)碼文件的目錄。(Window 2K下:“我的電腦” 屬性,彈出“系統(tǒng)屬性”對(duì)話框,選擇“高級(jí)”單擊“環(huán)境變量”按鈕。)JAVA語言第1講36JDK工具庫(kù)中的七種主要程序。njavac java編譯器,將Java源代碼轉(zhuǎn)換成字節(jié)碼。njava java解釋器,直接從類文件執(zhí)行java應(yīng)用程序字節(jié)代碼。nappletviewer 小程序?yàn)g覽器,一種執(zhí)行HTML文件上的java小程序的Java瀏覽器。njavadoc 根據(jù)java源碼及說明語句生成HTML文檔。njdb Java調(diào)試器,可以逐行執(zhí)行程序,設(shè)置斷點(diǎn)和檢查變量。njavah 產(chǎn)生可以調(diào)用J

25、ava過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。njavap java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時(shí)顯示字節(jié)代碼含義。JAVA語言第1講371.4.3 Java程序開發(fā)過程安裝JDK設(shè)置環(huán)境變量安裝IDE源程序文件 (*.java)編譯字節(jié)碼文件 (*.class)程序設(shè)計(jì)程序修改錯(cuò)誤成功保存AppletRich Client AppJ2EE Server AppJ2ME App安裝安裝開發(fā)開發(fā)運(yùn)行運(yùn)行JAVA語言第1講381.5 Java應(yīng)用程序結(jié)構(gòu) Java程序的分類:Java Application由JAVA解釋器獨(dú)立運(yùn)行字節(jié)碼由專門的命令行啟動(dòng)程序執(zhí)

26、行程序中有定義了main()方法的主類Java Applet不能獨(dú)立運(yùn)行,字節(jié)碼必須嵌入HTML文檔當(dāng)瀏覽器調(diào)用含APPLET的Web頁面時(shí)執(zhí)行程序中含有java. applet. Applet 類的子類Client 機(jī)Server 機(jī)Browser網(wǎng)頁字節(jié)碼JAVA語言第1講391.5 Java程序 Java程序的分類:Java Serverlets是Java技術(shù)對(duì)CGI 編程的解決方案是運(yùn)行于Web server上的、作為來自于Web browser 或其他HTTP client端的請(qǐng)求 和 在HTTP server上的數(shù)據(jù)庫(kù)及其他應(yīng)用程序之間的中間層程序程序中有定義了main()方法的主

27、類Serverlets的工作是:讀入用戶發(fā)來的數(shù)據(jù)(通常在web頁的form中)找出隱含在HTTP請(qǐng)求中的其他請(qǐng)求信息(如瀏覽器功能細(xì)節(jié)、請(qǐng)求端主機(jī)名等產(chǎn)生結(jié)果(調(diào)用其他程序、訪問數(shù)據(jù)庫(kù)、直接計(jì)算結(jié)果)格式化結(jié)果(網(wǎng)頁)設(shè)置HTTP response參數(shù)(如告訴瀏覽器返回文檔格式)將文檔返回給客戶端JAVA語言第1講401.5.1 Java應(yīng)用程序舉例/這是文件名為這是文件名為“HelloWorld.java”的簡(jiǎn)單應(yīng)用程序的簡(jiǎn)單應(yīng)用程序import java.io.*; / 引入包引入包c(diǎn)lass HelloWorld / 定義類定義類 public static void main(Str

28、ing args) / main方法方法 System.out.println(“歡迎來到歡迎來到Java世界!世界!”); / 輸出數(shù)據(jù)輸出數(shù)據(jù) 定義類的定義類的關(guān)鍵字關(guān)鍵字 類名類名 必須這必須這么寫么寫 JAVA語言第1講41保存并運(yùn)行以以javajava為擴(kuò)展為擴(kuò)展名,保存時(shí)注名,保存時(shí)注意類型。意類型。 JAVA語言第1講42Java程序結(jié)構(gòu) (1)至多有一個(gè)public類,此時(shí)文件名必須與類名相同。(2)程序可以有一個(gè)或多個(gè)其它類。(3)當(dāng)需要從某個(gè)類繼承或使用某個(gè)類及其方法時(shí),使用import引入該類的定義。(4)Java程序組成結(jié)構(gòu) package/0個(gè)或1個(gè),必須放在文件開始

29、 import/0個(gè)或多個(gè),必須放在所有類定義之前 public class Definition /0個(gè)或1個(gè),文件名必須與類名相同 class Definition /0個(gè)或多個(gè) interface Definition/0個(gè)或多個(gè)JAVA語言第1講43Java程序結(jié)構(gòu) package import - class 類名1 屬性定義 方法名1() - 方法名2() - class 類名2 - 一個(gè)程序可包括若干個(gè)類,各類之間存在并列、繼承和包含關(guān)系。這些類通常是在一起協(xié)同工作的:每一個(gè)類都可能需要?jiǎng)?chuàng)建其他類的對(duì)象,并調(diào)用類或?qū)ο蟮膶傩约胺椒āAVA語言第1講44Java應(yīng)用程序的執(zhí)行過程

30、編譯型源程序編譯型源程序字節(jié)碼程序字節(jié)碼程序Java源程序源程序可執(zhí)行程序可執(zhí)行程序EXE裸機(jī)裸機(jī)操作系統(tǒng)操作系統(tǒng)解釋器解釋器編譯編譯連接連接編譯編譯運(yùn)行運(yùn)行解釋解釋運(yùn)行運(yùn)行.java.classJAVA語言第1講45public class CommArg public static void main(String args) / Display command arguments int i; if( args.length 0 ) /have some command arguments for( i=0; iargs.length; i+ ) System.out.println(a

31、rg+i+ = +argsi); else /no command argument System.out.println(No arguments!); Java應(yīng)用程序應(yīng)用程序第二個(gè)第二個(gè)Java應(yīng)用程序舉例(命令行參數(shù))應(yīng)用程序舉例(命令行參數(shù))JAVA語言第1講46Java應(yīng)用程序應(yīng)用程序第二個(gè)第二個(gè)Java應(yīng)用程序舉例(命令行參數(shù))應(yīng)用程序舉例(命令行參數(shù))n 命令行參數(shù): main( String args ),與標(biāo)準(zhǔn)C中main(int argc, char* argv) 相似。n 字符串的拼接: arg + i + = + argsi。n 編譯程序:javac HelloWor

32、ldApp.javan 運(yùn)行程序(命令行參數(shù)獲取): java CommArg first second thirdn 運(yùn)行結(jié)果: arg0 = first arg1 = second arg2 = thirdJAVA語言第1講47nApplet程序中必須包含java.applet.Applet類的子類。該子類就是applet小程序的主類。n系統(tǒng)類Applet中已經(jīng)定義了很多的成員域和成員方法,它們規(guī)定了Applet小程序如何與執(zhí)行它的解釋器WWW瀏覽器配合工作。nJava Applet 中不需要有 main 方法,它的要求是程序中有且必須有一個(gè)類是系統(tǒng)類Applet的子類,也就是必須有一個(gè)類

33、的類頭部分以 extends Applet 結(jié)尾。n主方法被瀏覽器自動(dòng)調(diào)用的方法。ninit() :初始化,自動(dòng)調(diào)用,只執(zhí)行一次。nstart() :初始化后,重入等都將自動(dòng)調(diào)用。nstop() :離開Applet所在頁面時(shí)調(diào)用,以停止消耗系統(tǒng)資源。ndestroy ():退出窗口時(shí),被調(diào)用。npaint() :顯示、重畫Applet窗口時(shí)調(diào)用。1.5.2 Java Applet -程序結(jié)構(gòu)JAVA語言第1講48n當(dāng)applet下載時(shí),瀏覽器首先創(chuàng)建applet實(shí)例并調(diào)用init()方法進(jìn)行初始化工作,然后調(diào)用start() 方法開始applet小程序的執(zhí)行;n當(dāng)用戶離開小程序所在頁面時(shí),瀏覽

34、器調(diào)用stop()方法停止小程序執(zhí)行;當(dāng)用戶重新進(jìn)入小程序頁面時(shí),就再調(diào)用start方法;n當(dāng)用戶退出瀏覽器時(shí),瀏覽器調(diào)用destroy ()方法并釋放資源;n每當(dāng)需要時(shí),瀏覽器調(diào)用paint()方法重畫界面。ninit()nstart()nstop()ndestroy ()npaint()編寫applet小程序就是根據(jù)需要重新編寫這些方法1.5.2 Java Applet -程序運(yùn)行過程JAVA語言第1講49/* HelloToJava.java */import java.awt.Graphics;import java.applet.*;public class HelloToJava

35、extends Applet public String sHello; public void init() sHello=“歡迎來到歡迎來到Java世界!世界!”; public void paint(Graphics g) g.drawString(sHello, 50, 50);文檔注釋,可以文檔注釋,可以使用使用javadocjavadoc命命令生成令生成HTMLHTML幫助幫助文件。文件。 裝入系統(tǒng)裝入系統(tǒng)類庫(kù)。類庫(kù)。 1.5.2 Java Applet -程序舉例JAVA語言第1講50保存并運(yùn)行將上頁文件保存為HelloToJava.java(必須)。 將文件保存為.htm或.h

36、tml文件。首先將HelloToJava.java文件進(jìn)行編譯(javac命令)。 javac HelloToJava.java然后使用appletviewer filename.htm 查看效果。JAVA語言第1講51應(yīng)用程序和Applet的對(duì)比JAVA語言第1講52第一次使用第一次使用Java時(shí)常見的問題時(shí)常見的問題q 編譯時(shí)q 運(yùn)行時(shí)JAVA語言第1講53n使用“.”作為目錄名分割符:nyour homejavac examples.ch1.Welcome1.javan錯(cuò)誤:不能讀:examples.ch1.Welcome1.javan1 個(gè)錯(cuò)誤n解決辦法:nyour homejavac

37、 examplesch1Welcome1.javan或者nyour homejavac examples/ch1/Welcome1.javaJava編譯時(shí)常見的問題(編譯時(shí)常見的問題(1)JAVA語言第1講54Java編譯時(shí)常見的問題(編譯時(shí)常見的問題(2)n忘記文件后綴.javanyour homejavac examplesch1Welcome1njavac: 無效的參數(shù):examplesch1Welcome1n用法:javac nn解決辦法:nyour homejavac examplesch1Welcome1.javan或者nyour homejavac examples/ch1/We

38、lcome1.javaJAVA語言第1講55Java運(yùn)行時(shí)常見的問題(運(yùn)行時(shí)常見的問題(1)n使用“”最為包名的分割符:nyour homejava examplesch1Welcome1nException in thread main java.lang.NoClassDefFoundError: examplesch1Welcome1 (wrong name: examples/ch1/Welcome1)n at java.lang.ClassLoader.defineClass0(Native Method)n n解決辦法:nyour homejava examples.ch1.Wel

39、come1n或者nyour homejava examples/ch1/Welcome1JAVA語言第1講56Java運(yùn)行時(shí)常見的問題(運(yùn)行時(shí)常見的問題(2)n沒有把當(dāng)前目錄加到classpath環(huán)境變量中:nyour homejava examples.ch1.Welcome1nException in thread main java.lang.NoClassDefFoundError: examplesch1Welcome1n解決辦法:nset classpath=%classpath%;.n或者nyour homejava classpath . examples.ch1.Welcom

40、e1JAVA語言第1講57Java編譯小竅門編譯小竅門n命令行:javac *.javan可以編譯當(dāng)前目錄下所有的.java文件n命令行:javac yourpackage*.javan編譯yourpackage目錄下所有的.java文件JAVA語言第1講581.5.4 Java語言規(guī)范1. 命名規(guī)范n源文件的命名規(guī)則n包名:包名是全小寫的名詞,中間可以由點(diǎn)分隔開,例如:java.awt.event;n類名:首字母大寫,通常由多個(gè)單詞合成一個(gè)類名,要求每個(gè)單詞的首字母也要大寫,例如class HelloWorldApp;n接口名:命名規(guī)則與類名相同,例如interface Collection

41、;JAVA語言第1講59n方法名:往往由多個(gè)單詞合成,第一個(gè)單詞通常為動(dòng)詞,首字母小寫,中間的每個(gè)單詞的首字母都要大寫,例如:balanceAccount,isButtonPressed;n變量名:全小寫,一般為名詞,例如:length;n常量名:基本數(shù)據(jù)類型的常量名為全大寫,如果是由多個(gè)單詞構(gòu)成,可以用下劃線隔開,例如:int YEAR, int WEEK_OF_MONTH;如果是對(duì)象類型的常量,則是大小寫混合,由大寫字母把單詞隔開。JAVA語言第1講602.注釋n單行注釋:從/開始到本行結(jié)束的內(nèi)容都是注釋, n多行注釋:在/*和*/之間的所有內(nèi)容都是注釋, n文檔注釋:可以通過JDK提供的javadoc命令,從文檔注釋中提取生成所編程序的HTML文件形式API的文檔,與java幫助文檔的風(fēng)格與形式完全一致。n凡是在/*和*/之間的內(nèi)容都是文檔注釋。例如下面的DocTest.java文件:JAVA語言第1講61n/* 這是一個(gè)文檔注釋的例子,主要介紹下面這個(gè)類 */public class DocTest/* 變量注釋,下面這個(gè)變量主要是充當(dāng)整數(shù)計(jì)數(shù) */public int i;/* 方法注釋,下面這個(gè)方法的主要功能是計(jì)數(shù) */public void count( ) n運(yùn)行 javadoc -d .doc DocTest.java就在當(dāng)前目下的doc目錄中生成了介紹類Do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論