第01章Java概述用教案_第1頁
第01章Java概述用教案_第2頁
第01章Java概述用教案_第3頁
第01章Java概述用教案_第4頁
第01章Java概述用教案_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第01章章Java概述用教案概述用教案 1.1 了解了解Java 1.2 Java應(yīng)用程序及其運行方式應(yīng)用程序及其運行方式 1.3 Java開發(fā)運行環(huán)境開發(fā)運行環(huán)境1.1 了解Java1.1.1 Java的誕生和發(fā)展的誕生和發(fā)展1.1.2 Java語言的特點及優(yōu)勢語言的特點及優(yōu)勢1.1.3 Java的核心技術(shù)的核心技術(shù)1.1.1 Java的誕生和發(fā)展1.前身前身2.誕生誕生3.JDK版本版本4.三個平臺三個平臺J2ME(嵌入式平臺)(嵌入式平臺)J2SE(標準平臺)(標準平臺)J2EE(企業(yè)級平臺)(企業(yè)級平臺)1. 前身起源于嵌入式工程:起源于嵌入式工程:1991年,年,Sun公司啟動了公

2、司啟動了“Green”工工程以創(chuàng)建智能消費電子設(shè)備。用戶只需要一個建立在標準基程以創(chuàng)建智能消費電子設(shè)備。用戶只需要一個建立在標準基礎(chǔ)之上的與硬件平臺無關(guān)的一系列可選方案。礎(chǔ)之上的與硬件平臺無關(guān)的一系列可選方案。前身叫前身叫Oak,并基于,并基于C+。為了做到平臺無關(guān)性,為了做到平臺無關(guān)性,Gosling首先想到改寫首先想到改寫C+的編譯器。的編譯器。C+是無法滿足需要的。而是無法滿足需要的。而且在且在C+中有著巨大的安全隱患,例如指針的使用,沒有數(shù)中有著巨大的安全隱患,例如指針的使用,沒有數(shù)組越界的檢查,缺乏自動的內(nèi)存管理,過于靈活的數(shù)據(jù)類型組越界的檢查,缺乏自動的內(nèi)存管理,過于靈活的數(shù)據(jù)類型

3、轉(zhuǎn)換等。于是他開始考慮開發(fā)一種新的面向?qū)ο笳Z言,稱為轉(zhuǎn)換等。于是他開始考慮開發(fā)一種新的面向?qū)ο笳Z言,稱為“Oak”(注:(注:Oak是橡樹的意思)。是橡樹的意思)。 Oak程序可以在需要程序可以在需要時下載。時下載。 命名為命名為JAVA。后來由于商標的沖突,后來由于商標的沖突,Oak改為改為Java。Java取名于印尼的爪哇島,該島盛產(chǎn)咖啡,取名于印尼的爪哇島,該島盛產(chǎn)咖啡,Java是咖啡的俚語發(fā)是咖啡的俚語發(fā)音。音。2. 誕生1994年,年,Internet和和WWW服務(wù)在全球如火如荼的發(fā)展服務(wù)在全球如火如荼的發(fā)展起來,起來,Oak小組開始認識到它的可下載技術(shù)可以用到小組開始認識到它的可下

4、載技術(shù)可以用到Web上。上。 在當時,在當時,WWW服務(wù)還只是靜態(tài)的,缺少交互性,而只是服務(wù)還只是靜態(tài)的,缺少交互性,而只是一些靜態(tài)的圖象和文本。在一些靜態(tài)的圖象和文本。在Web頁上也的確出現(xiàn)了一些諸頁上也的確出現(xiàn)了一些諸如簡單的繪畫程序的如簡單的繪畫程序的CGI腳本,但實際上并沒有交互性。腳本,但實際上并沒有交互性??蛻舳说恼埱筮€要送回服務(wù)器,這樣就給服務(wù)器增加了額客戶端的請求還要送回服務(wù)器,這樣就給服務(wù)器增加了額外的負擔。如果程序能夠下載并在能在客戶端的瀏覽器上外的負擔。如果程序能夠下載并在能在客戶端的瀏覽器上運行,那么服務(wù)器的負擔就會減輕,從而能夠提供更多的運行,那么服務(wù)器的負擔就會減輕

5、,從而能夠提供更多的文檔服務(wù)。這種瀏覽器就是文檔服務(wù)。這種瀏覽器就是Java小組當時要建立的瀏覽器。小組當時要建立的瀏覽器。1995年年5月,名為月,名為HotJava的瀏覽器發(fā)表后,引起了巨大的瀏覽器發(fā)表后,引起了巨大的轟動。的轟動。HotJava是第一個具有自動裝載和運行是第一個具有自動裝載和運行Java程序程序的瀏覽器。的瀏覽器。 3. JDK版本演化1995年,年,Sun公司發(fā)布了第一版的公司發(fā)布了第一版的Java開發(fā)工開發(fā)工具包(具包(Java Development Kit, JDK)。)。JDK提供提供Java運行環(huán)境。從最初的到最新的,其運行環(huán)境。從最初的到最新的,其中中199

6、8年發(fā)布的版是一個重要版本。年發(fā)布的版是一個重要版本。 Sun稱之稱之為為Java 2 SDK( Software Development Kit),此后的此后的Java就成為就成為Java 2.新版本的特性是使用類庫新版本的特性是使用類庫(class libraries)或應(yīng)或應(yīng)用程序接口用程序接口(Application Programming Interface, API)構(gòu)建程序。構(gòu)建程序。4. 三個平臺1.J2SE(Java 2 Standard Edition) 桌面系統(tǒng)桌面系統(tǒng)2. J2ME (Java 2 Micro Edition) 智能卡、移動通訊、電視機頂盒智能卡、移動通

7、訊、電視機頂盒3. J2EE (Java 2 Enterprise Edition) 企業(yè)級應(yīng)用平臺,分布式企業(yè)軟件組件與企業(yè)級應(yīng)用平臺,分布式企業(yè)軟件組件與架構(gòu)的規(guī)范,具有架構(gòu)的規(guī)范,具有WEB性能。性能。1.What:java是什么及其特性是什么及其特性2.Why: 為什么要有三個平臺為什么要有三個平臺3.How:如何學好:如何學好java1.1.2 Java語言的特點及優(yōu)勢1.簡單性簡單性2.更強的面向?qū)ο蟾鼜姷拿嫦驅(qū)ο?.分布式與高效網(wǎng)絡(luò)編程分布式與高效網(wǎng)絡(luò)編程4.安全安全5.健壯健壯6.平臺無關(guān)性和可移植性平臺無關(guān)性和可移植性7.高性能高性能 8.多線程多線程 9.動態(tài)動態(tài) n1.1

8、.2 1. 簡單性 為了保證簡單性,為了保證簡單性,Java去掉了去掉了C+中中許多復雜的、冗余的、有二義性的概念,例許多復雜的、冗余的、有二義性的概念,例如操作符重載、多繼承、數(shù)據(jù)類型自動轉(zhuǎn)換如操作符重載、多繼承、數(shù)據(jù)類型自動轉(zhuǎn)換等。為了將程序員從復雜的內(nèi)存管理的負擔等。為了將程序員從復雜的內(nèi)存管理的負擔中解脫出來,同時也是為了減少錯誤,中解脫出來,同時也是為了減少錯誤,Java使用了自動內(nèi)存垃圾收集機制,程序員只要使用了自動內(nèi)存垃圾收集機制,程序員只要在需要的時候申請即可,不需要釋放在需要的時候申請即可,不需要釋放,而由而由Java自己來收集、釋放內(nèi)存中的無用的塊。自己來收集、釋放內(nèi)存中的

9、無用的塊。 2. 更強的面向?qū)ο?C+,Object Pascal等,實際上都等,實際上都是一種混合型的語言,即在過程式的語言中是一種混合型的語言,即在過程式的語言中加上面向?qū)ο蟮臄U展。在加上面向?qū)ο蟮臄U展。在Java中,幾乎萬中,幾乎萬物皆對象,就連一些基本數(shù)據(jù)類型,如整型、物皆對象,就連一些基本數(shù)據(jù)類型,如整型、字符型、浮點型等,在字符型、浮點型等,在Java中都可以作為中都可以作為對象處理。對象處理。Java的面向?qū)ο筇匦詭缀蹩梢缘拿嫦驅(qū)ο筇匦詭缀蹩梢耘c與Smalltalk媲美,但是其適用于分布式計媲美,但是其適用于分布式計算環(huán)境的特性卻遠遠超過了算環(huán)境的特性卻遠遠超過了Smalltal

10、k。 3. 分布式與高效網(wǎng)絡(luò)編程 使用使用Java提供的提供的URL類,用戶可以象類,用戶可以象訪問本地文件一樣訪問網(wǎng)絡(luò)上的對象,使用訪問本地文件一樣訪問網(wǎng)絡(luò)上的對象,使用非常方便。在客戶機非常方便。在客戶機/服務(wù)器的模式下,服務(wù)器的模式下,Java還可以將運算從服務(wù)器端分散到客戶還可以將運算從服務(wù)器端分散到客戶端,提高系統(tǒng)的效率,避免了服務(wù)器的瓶頸端,提高系統(tǒng)的效率,避免了服務(wù)器的瓶頸制約。制約。Java的網(wǎng)絡(luò)類庫支持分布式的編程。的網(wǎng)絡(luò)類庫支持分布式的編程。Socket類提供可靠的流式網(wǎng)絡(luò)的連接,支類提供可靠的流式網(wǎng)絡(luò)的連接,支持持TCP/IP協(xié)議。通過編寫協(xié)議句柄,程序協(xié)議。通過編寫協(xié)議

11、句柄,程序員還可以擴充員還可以擴充Java支持的協(xié)議集合。支持的協(xié)議集合。 4. 安全 由于由于Java應(yīng)用于網(wǎng)絡(luò)程序的開發(fā),因而安應(yīng)用于網(wǎng)絡(luò)程序的開發(fā),因而安全性變的至關(guān)重要。因為全性變的至關(guān)重要。因為Java小程序需要下載到小程序需要下載到客戶端解釋執(zhí)行,所以,如果沒有安全控制,就客戶端解釋執(zhí)行,所以,如果沒有安全控制,就會給一些網(wǎng)絡(luò)黑客以可乘之機,這對用戶來說是會給一些網(wǎng)絡(luò)黑客以可乘之機,這對用戶來說是非常危險的。所幸的是,非常危險的。所幸的是,Java的安全機制可以有的安全機制可以有效的防止病毒程序的產(chǎn)生、下載程序?qū)Ρ镜匚募У姆乐共《境绦虻漠a(chǎn)生、下載程序?qū)Ρ镜匚募到y(tǒng)的破壞,以及網(wǎng)絡(luò)

12、黑客竊取密碼和入侵。系統(tǒng)的破壞,以及網(wǎng)絡(luò)黑客竊取密碼和入侵。 概括起來,概括起來,Java的安全機制主要有以下幾種:的安全機制主要有以下幾種: 4. 安全(cont.) Java的內(nèi)存分配模式可以有效的防止有害代碼的內(nèi)存分配模式可以有效的防止有害代碼的入侵。由于取消了指針,程序無法訪問它不應(yīng)的入侵。由于取消了指針,程序無法訪問它不應(yīng)該訪問的內(nèi)存。該訪問的內(nèi)存。Java的編譯器不處理內(nèi)存布局,運行時期的實際的編譯器不處理內(nèi)存布局,運行時期的實際內(nèi)存布局無法從類的結(jié)構(gòu)推知。內(nèi)存布局無法從類的結(jié)構(gòu)推知。字節(jié)碼驗證器(字節(jié)碼驗證器(ByteCode Verifier)可以防止)可以防止Java運行環(huán)境

13、裝入有害的類文件。這樣,敵人通運行環(huán)境裝入有害的類文件。這樣,敵人通過炮制字節(jié)碼來入侵的辦法就行不通了,任何字過炮制字節(jié)碼來入侵的辦法就行不通了,任何字節(jié)碼都要通過字節(jié)碼驗證器來驗明正身。節(jié)碼都要通過字節(jié)碼驗證器來驗明正身。 4. 安全(cont.)4. 瀏覽器限制小程序訪問客戶機的資源。瀏覽器限制小程序訪問客戶機的資源。小程序能夠訪問的客戶機的資源比應(yīng)用程小程序能夠訪問的客戶機的資源比應(yīng)用程序要少的多。瀏覽器有一個序要少的多。瀏覽器有一個SecurityManager(安全管理器)類的實(安全管理器)類的實例。安全管理器控制小程序?qū)ξ募到y(tǒng)和例。安全管理器控制小程序?qū)ξ募到y(tǒng)和網(wǎng)絡(luò)的訪問,它

14、不讓小程序進行本地或遠網(wǎng)絡(luò)的訪問,它不讓小程序進行本地或遠程訪問。程訪問。 4. 安全(cont.)Java類裝入機制保證不會裝入偽裝類。有時,入類裝入機制保證不會裝入偽裝類。有時,入侵者使用一種稱為侵者使用一種稱為“偽裝偽裝”的攻擊方法。偽裝就的攻擊方法。偽裝就是建立與標準類同名的類,希望能夠冒名頂替。是建立與標準類同名的類,希望能夠冒名頂替。而被偽裝的類通常都是比較敏感的控制資源的類。而被偽裝的類通常都是比較敏感的控制資源的類。而而Java的類裝入機制能夠防止假冒類的裝入。當?shù)念愌b入機制能夠防止假冒類的裝入。當需要裝入標準類時,需要裝入標準類時,Java首先搜索首先搜索Java運行系運行系

15、統(tǒng)自己的類定義集,如果沒有,會按照統(tǒng)自己的類定義集,如果沒有,會按照ClassPath指定的路徑搜索本地機器中文件系統(tǒng)指定的路徑搜索本地機器中文件系統(tǒng)的其他位置,如果還沒有,才去搜索遠程服務(wù)器。的其他位置,如果還沒有,才去搜索遠程服務(wù)器。 1.1.2 5. 健壯不支持指針。在不支持指針。在C+程序中,指針的錯誤使用通常的程序程序中,指針的錯誤使用通常的程序中中BUG的元兇。在的元兇。在Java中徹底去掉了指針,杜絕了內(nèi)存的中徹底去掉了指針,杜絕了內(nèi)存的非法訪問,從而保證了程序的可靠性。非法訪問,從而保證了程序的可靠性。強類型語言。強制數(shù)據(jù)類型定義的語言。也就是說,一旦強類型語言。強制數(shù)據(jù)類型定

16、義的語言。也就是說,一旦一個變量被指定了某個數(shù)據(jù)類型,如果不經(jīng)過強制轉(zhuǎn)換,一個變量被指定了某個數(shù)據(jù)類型,如果不經(jīng)過強制轉(zhuǎn)換,那么它就永遠是這個數(shù)據(jù)類型了。那么它就永遠是這個數(shù)據(jù)類型了。 自動內(nèi)存垃圾收集機制。自動內(nèi)存垃圾收集機制。Java自動收集無用的內(nèi)存單元,自動收集無用的內(nèi)存單元,進而防止了由于內(nèi)存泄漏導致的動態(tài)內(nèi)存分配問題。進而防止了由于內(nèi)存泄漏導致的動態(tài)內(nèi)存分配問題。完善的異常處理機制,既簡化了錯誤處理任務(wù)和恢復,也完善的異常處理機制,既簡化了錯誤處理任務(wù)和恢復,也增加了程序的可讀性。增加了程序的可讀性。 6. 平臺無關(guān)性和可移植性 因為因為Java最初是為對電子產(chǎn)品編程而最初是為對電

17、子產(chǎn)品編程而設(shè)計的,所以它具有完美的平臺無關(guān)性。設(shè)計的,所以它具有完美的平臺無關(guān)性。它使用一種與平臺無關(guān)的代碼它使用一種與平臺無關(guān)的代碼字節(jié)碼,字節(jié)碼,而不是通常的特定機器上的機器碼,由平而不是通常的特定機器上的機器碼,由平臺上的臺上的Java虛擬機中的虛擬機中的Java解釋器解釋執(zhí)解釋器解釋執(zhí)行。行。Java虛擬機是免費的,在許多平臺上虛擬機是免費的,在許多平臺上都有。都有。 6. 平臺無關(guān)性和可移植性(cont.) Java使用兩種方法使使用兩種方法使Java的應(yīng)用程序不依賴的應(yīng)用程序不依賴與具體的系統(tǒng):與具體的系統(tǒng):1.采用基于國際標準的數(shù)據(jù)類型。采用基于國際標準的數(shù)據(jù)類型。Java的原

18、始數(shù)據(jù)的原始數(shù)據(jù)類型在任何機器上都是一樣的,例如整型總是類型在任何機器上都是一樣的,例如整型總是32位,長整型總是位,長整型總是64位等。在位等。在SPARC機上,機上,C+的的int是是64位的,而位的,而Intel 586機上的機上的C+的的int是是32位的。位的。 2.提供了一個用于訪問底層操作系統(tǒng)功能的可擴展提供了一個用于訪問底層操作系統(tǒng)功能的可擴展類庫。類庫。 1.1.2 7. 高性能 “魚與熊掌不可兼得魚與熊掌不可兼得”,通常,健壯性、,通常,健壯性、安全性、平臺無關(guān)性、可移植性等方面的提安全性、平臺無關(guān)性、可移植性等方面的提高總是要以犧牲性能為代價的。高總是要以犧牲性能為代價的

19、。Java也不也不例外,例外,Java的內(nèi)存管理增加了運行時系統(tǒng)的內(nèi)存管理增加了運行時系統(tǒng)的復雜性,因為的復雜性,因為Java運行時系統(tǒng)必須內(nèi)嵌運行時系統(tǒng)必須內(nèi)嵌一個內(nèi)存管理模塊;同樣,一個內(nèi)存管理模塊;同樣,Java程序的解程序的解釋執(zhí)行的效率也要低于直接執(zhí)行編譯后的源釋執(zhí)行的效率也要低于直接執(zhí)行編譯后的源碼的效率。但是碼的效率。但是Java采用了一些很好的措采用了一些很好的措施來彌補這些性能上的差距:施來彌補這些性能上的差距: 1.1.2 7. 高性能(cont.)生成高效的字節(jié)碼。生成高效的字節(jié)碼。Java字節(jié)碼的設(shè)計充分考慮字節(jié)碼的設(shè)計充分考慮了性能的因素,字節(jié)碼的格式簡單,解釋器可以

20、了性能的因素,字節(jié)碼的格式簡單,解釋器可以生成高效的機器碼。生成高效的機器碼。提供了即時編譯和嵌入提供了即時編譯和嵌入C代碼的可選措施。即時編代碼的可選措施。即時編譯是指在運行時把字節(jié)碼編譯成機器碼。譯是指在運行時把字節(jié)碼編譯成機器碼。支持多線程。支持多線程。Java提供了對多線程的語言級的接提供了對多線程的語言級的接口,而且口,而且Java環(huán)境本身就是多線程的。環(huán)境本身就是多線程的。1.1.2 8. 多線程 多線程技術(shù)可以提高程序執(zhí)行的并多線程技術(shù)可以提高程序執(zhí)行的并發(fā)度,提高圖形用戶界面的交互性能。發(fā)度,提高圖形用戶界面的交互性能。Java提供了語言內(nèi)置的多線程控制,提供了語言內(nèi)置的多線程

21、控制,簡化了多線程應(yīng)用程序的開發(fā),還支簡化了多線程應(yīng)用程序的開發(fā),還支持線程的同步控制。持線程的同步控制。 1.1.2 9. 動態(tài) 動態(tài)特性是面向?qū)ο筇匦缘囊粋€延伸,它使得程序能動態(tài)特性是面向?qū)ο筇匦缘囊粋€延伸,它使得程序能夠適應(yīng)不斷變化的執(zhí)行環(huán)境。夠適應(yīng)不斷變化的執(zhí)行環(huán)境。JavaJava的動態(tài)性主要表現(xiàn)在以的動態(tài)性主要表現(xiàn)在以下幾個方面:下幾個方面:JavaJava的類有運行時的表示,這樣,即使在運行時刻,程序的類有運行時的表示,這樣,即使在運行時刻,程序也能辨別類之間的關(guān)系和類型信息,可以動態(tài)的從本地或也能辨別類之間的關(guān)系和類型信息,可以動態(tài)的從本地或網(wǎng)上把一個類鏈接到運行系統(tǒng)中去。網(wǎng)上

22、把一個類鏈接到運行系統(tǒng)中去。后期聯(lián)編。后期聯(lián)編。JavaJava的類在運行過程中動態(tài)的裝載,因此,的類在運行過程中動態(tài)的裝載,因此,JavaJava可以在分布式的環(huán)境中動態(tài)的維護應(yīng)用程序和可以在分布式的環(huán)境中動態(tài)的維護應(yīng)用程序和JavaJava類類庫之間的一致性。當類庫升級后,應(yīng)用程序無需重新編譯,庫之間的一致性。當類庫升級后,應(yīng)用程序無需重新編譯,也一樣可以利用新類庫中新增的功能。也一樣可以利用新類庫中新增的功能。支持動態(tài)數(shù)據(jù)類型和動態(tài)協(xié)議。通過編寫協(xié)議句柄,支持動態(tài)數(shù)據(jù)類型和動態(tài)協(xié)議。通過編寫協(xié)議句柄,JavaJava可以支持新的、自定義的傳輸協(xié)議,編寫內(nèi)容句柄,可以可以支持新的、自定義的

23、傳輸協(xié)議,編寫內(nèi)容句柄,可以支持新的數(shù)據(jù)類型。支持新的數(shù)據(jù)類型。1.1.3 Java的核心技術(shù)1.JDBC2.Java Servlet和和JSP3.JavaBeans和和EJB4.JavaMail1.1.3 JDBCJDBC( Java DataBase Connectivity)定義定義Java應(yīng)用程序與應(yīng)用程序與關(guān)系數(shù)據(jù)庫連接的規(guī)范。關(guān)系數(shù)據(jù)庫連接的規(guī)范。1.1.3 Java Servlet和JSPServlet是服務(wù)器端的是服務(wù)器端的Java應(yīng)用程序,應(yīng)用程序, Servlet全全部由部由Java寫成,其功能是生成動態(tài)的寫成,其功能是生成動態(tài)的HTML文檔,文檔,它擴展了它擴展了WEB服

24、務(wù)器的功能。當客戶端發(fā)送請求服務(wù)器的功能。當客戶端發(fā)送請求時,服務(wù)器端開始執(zhí)行時,服務(wù)器端開始執(zhí)行Servlet程序。程序。JSP是是Sun公司公司1999年推出的一種動態(tài)網(wǎng)頁技術(shù)年推出的一種動態(tài)網(wǎng)頁技術(shù)標準,是一種運行于標準,是一種運行于web服務(wù)器端的標記語言,服務(wù)器端的標記語言,它能夠?qū)⑺軌驅(qū)ava語言直接嵌入語言直接嵌入HTML文檔中。文檔中。JSP是是基于基于Java Servlet以及整個以及整個java體系的體系的Web開發(fā)開發(fā)技術(shù),可以建立安全、先進、跨平臺的動態(tài)網(wǎng)站。技術(shù),可以建立安全、先進、跨平臺的動態(tài)網(wǎng)站。1.1.3 Java Servlet和JSPJSP與與Micr

25、osoft的的ASP( Active Server Pages)技術(shù)類似,但采用的編程語言不同,技術(shù)類似,但采用的編程語言不同,ASP采用采用VBScript、JavaScript腳本語言,腳本語言,JSP采用采用java語言。語言。JSP功能更強,效率更功能更強,效率更高,具有動態(tài)頁面與靜態(tài)頁面分離、平臺高,具有動態(tài)頁面與靜態(tài)頁面分離、平臺無關(guān)、編譯后運行的特點。無關(guān)、編譯后運行的特點。1.1.3 JavaBeans和EJBJavaBeans是是JAVA的對象組件技術(shù),提的對象組件技術(shù),提供組建復用的關(guān)鍵技術(shù),類似于供組建復用的關(guān)鍵技術(shù),類似于Windows的的ActiveX.在在JSP中可

26、以使用中可以使用JavaBeans。EJB( Enterprise JavaBeans)提供企業(yè)提供企業(yè)級的級的JavaBeans。1.1.3 JavaMailJavaMail提供提供Email 郵件服務(wù)的支持類庫,不僅支持郵件服務(wù)的支持類庫,不僅支持SMTP服務(wù)器,也支持服務(wù)器,也支持IMAP服務(wù)器。服務(wù)器。IMAP(InternetMessageAccessPotocol)是一種用于郵是一種用于郵箱訪問的協(xié)議,使用箱訪問的協(xié)議,使用IMAP協(xié)議可以在協(xié)議可以在Client端管理端管理Server上的郵箱,它與上的郵箱,它與pop不同,郵件是保留在服務(wù)器上而不是不同,郵件是保留在服務(wù)器上而不

27、是download到本地,在這一點上到本地,在這一點上IMAP是與是與Webmail相似的。相似的。pop3協(xié)議是收郵件協(xié)議,協(xié)議是收郵件協(xié)議,smtp協(xié)議是發(fā)郵件協(xié)議。協(xié)議是發(fā)郵件協(xié)議。SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸即簡單郵件傳輸協(xié)議協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由由它來控制信件的中轉(zhuǎn)方式。它來控制信件的中轉(zhuǎn)方式。SMTP協(xié)議屬于協(xié)議屬于TCPIP協(xié)議族協(xié)議族,它幫助每臺計算機在發(fā)送或中轉(zhuǎn)信件時找到下一個目的地。它幫助每臺計算機在發(fā)送或中轉(zhuǎn)信件時找到下一個目的地。通過通過S

28、MTP協(xié)議所指定的服務(wù)器協(xié)議所指定的服務(wù)器,我們就可以把我們就可以把Email寄到寄到收信人的服務(wù)器上了收信人的服務(wù)器上了,整個過程只要幾分鐘。整個過程只要幾分鐘。SMTP服務(wù)器服務(wù)器則是遵循則是遵循SMTP協(xié)議的發(fā)送郵件服務(wù)器,用來發(fā)送或中轉(zhuǎn)你協(xié)議的發(fā)送郵件服務(wù)器,用來發(fā)送或中轉(zhuǎn)你發(fā)出的電子郵件。發(fā)出的電子郵件。 1.2 Java應(yīng)用程序及其運行方式 Application和和Applet程序程序 Java的體系結(jié)構(gòu)的體系結(jié)構(gòu)1.2.1 Application和Applet程序1.Application【例例1.1】 顯示字符串的顯示字符串的Application

29、應(yīng)用程序。應(yīng)用程序。2.Applet【例例1.2】 顯示字符串的顯示字符串的Applet應(yīng)用程序。應(yīng)用程序。1.Why:為什么要分這兩種程序為什么要分這兩種程序2.What:3.How:1.2.2 Java的體系結(jié)構(gòu) 傳統(tǒng)的高級語言的編譯過程傳統(tǒng)的高級語言的編譯過程1.2.2 Java的體系結(jié)構(gòu)Java運行時環(huán)境(類裝載器、字節(jié)碼校驗器、 類)Application應(yīng)用程序Unix操作系統(tǒng)Java虛擬機(字節(jié)碼解釋器、Peer接口)Windows操作系統(tǒng)JIT(即時編譯器)(可選)Applet應(yīng)用程序 “一次編譯,到處運行”的原理1.JVM虛擬機類似虛擬機類似Windows操作系統(tǒng)操作系統(tǒng) 2

30、.Java虛擬機可以是硬件虛擬機可以是硬件 ,也可以是軟件也可以是軟件 3.Java跨平臺的原因跨平臺的原因4.Java兼顧解釋性與編譯性語言的特點兼顧解釋性與編譯性語言的特點 虛擬機的原理是難點和重點虛擬機的原理是難點和重點1.Why:2.What:3.How:什么是平臺無關(guān)性1.為一種平臺編寫的為一種平臺編寫的java程序不用修改就可程序不用修改就可以應(yīng)用到其他的平臺上。如以應(yīng)用到其他的平臺上。如unix, windows, linux等。等。Java是如何實現(xiàn)平臺無關(guān)的呢?是如何實現(xiàn)平臺無關(guān)的呢? 首先,編譯器將源碼轉(zhuǎn)化成字節(jié)碼首先,編譯器將源碼轉(zhuǎn)化成字節(jié)碼(.class),然后由,然后

31、由虛擬機將字節(jié)碼解釋執(zhí)行。虛擬機是平臺相關(guān)的,但虛擬機將字節(jié)碼解釋執(zhí)行。虛擬機是平臺相關(guān)的,但它非常小,容易編寫。由于它非常小,容易編寫。由于Java的強大,任何一個平的強大,任何一個平臺都愿意支持它。都配置了虛擬機。這樣,臺都愿意支持它。都配置了虛擬機。這樣,java就將就將原先整體的依賴平臺的代碼分成了兩部分,其中轉(zhuǎn)化原先整體的依賴平臺的代碼分成了兩部分,其中轉(zhuǎn)化字節(jié)碼的工作量大,而第二部分即虛擬機解釋執(zhí)行部字節(jié)碼的工作量大,而第二部分即虛擬機解釋執(zhí)行部分的工作量很小。雖然虛擬機依賴各個不同的平臺,分的工作量很小。雖然虛擬機依賴各個不同的平臺,但因工作量小,各種平臺都很容易實現(xiàn)。于是但因工

32、作量小,各種平臺都很容易實現(xiàn)。于是java就就利用這種方式,將大塊的耗時耗力的依賴平臺的工作利用這種方式,將大塊的耗時耗力的依賴平臺的工作,分成了大部分不依賴平臺,小部分依賴平臺,但容,分成了大部分不依賴平臺,小部分依賴平臺,但容易實現(xiàn)的方法實現(xiàn)了跨平臺。易實現(xiàn)的方法實現(xiàn)了跨平臺。在傳統(tǒng)的高級語言中,編譯器將程序直接編譯成在傳統(tǒng)的高級語言中,編譯器將程序直接編譯成所在機器的機器碼,然后在相應(yīng)的系統(tǒng)中運行。所在機器的機器碼,然后在相應(yīng)的系統(tǒng)中運行。由于每種機器的機器碼各不相同,所以一種機器由于每種機器的機器碼各不相同,所以一種機器上的機器碼不能在另外一種機器上運行。上的機器碼不能在另外一種機器上

33、運行。每一種平臺的解釋器是不同的,但是實現(xiàn)的虛擬每一種平臺的解釋器是不同的,但是實現(xiàn)的虛擬機是相同的。機是相同的。Java源程序經(jīng)過源程序經(jīng)過編譯器編譯器編譯后變成編譯后變成字節(jié)碼,字節(jié)碼由字節(jié)碼,字節(jié)碼由虛擬機虛擬機解釋執(zhí)行,虛擬機將每解釋執(zhí)行,虛擬機將每一條要執(zhí)行的字節(jié)碼送給一條要執(zhí)行的字節(jié)碼送給解釋器解釋器,解釋器將其翻,解釋器將其翻譯成特定機器上的機器碼,然后在特定的機器上譯成特定機器上的機器碼,然后在特定的機器上運行。運行。 為了在為了在WWW上運行上運行Java小程序,小程序,Java虛擬機嵌入在瀏覽器中。虛擬機嵌入在瀏覽器中。 1.3 Java開發(fā)運行環(huán)境 JDK的

34、安裝與設(shè)置的安裝與設(shè)置 運行運行Java程序程序 Eclipse簡介簡介1.3.1 JDK的安裝與設(shè)置1.硬件配置要求硬件配置要求2.程序清單程序清單3.安裝安裝JDK4.設(shè)置環(huán)境變量設(shè)置環(huán)境變量Windows XP中設(shè)置環(huán)境變量中設(shè)置環(huán)境變量設(shè)置環(huán)境變量的批命令設(shè)置環(huán)境變量的批命令5.安裝安裝JDK幫助文檔幫助文檔1.3.1 JDK的安裝與設(shè)置1.硬件配置要求硬件配置要求:硬件:硬件:CPU P以上,以上,64MB內(nèi)存,內(nèi)存,100MB硬盤硬盤軟件:軟件:Windows 98以上,以上。以上,以上。1.3.1 JDK的安裝與設(shè)置1.安裝機器要求安裝機器要求2.程序

35、清單:安裝版本,需要以下程序和文程序清單:安裝版本,需要以下程序和文檔檔 ,JDK,幫助文檔,幫助文檔幫助文檔一定要會查閱。幫助文檔一定要會查閱。1.3.1 JDK的安裝與設(shè)置1.安裝機器要求安裝機器要求2.程序清單程序清單3.安裝安裝JDK:默認安裝:默認安裝 JDK的目錄結(jié)構(gòu)如下:的目錄結(jié)構(gòu)如下: : 核心核心API所有類的源文件。所有類的源文件。必須會看必須會看 bin: 包含編譯器、解釋器等可執(zhí)行文件。包含編譯器、解釋器等可執(zhí)行文件。 demo: 包含源代碼的程序示例。包含源代碼的程序示例。 include: 編寫編寫JNDI等程序需要的等程序需要的C語言頭文件。語言頭文件。 jre:

36、 java 運行時環(huán)境。運行時環(huán)境。 lib: java類庫。類庫。1.Why: 必看必看2.What:3.How:1.3.1 JDK的安裝與設(shè)置1.安裝機器要求安裝機器要求2.程序清單程序清單3.安裝安裝JDK4.設(shè)置環(huán)境變量設(shè)置環(huán)境變量Windows XP中設(shè)置環(huán)境變量中設(shè)置環(huán)境變量5.安裝安裝JDK幫助文檔幫助文檔1.Why: 2.What:java-doc3.How:1.Why: 2.What:環(huán)境變量:環(huán)境變量3.How:1.3.2 運行Java程序1.Java程序運行流程程序運行流程超文本中的字節(jié)碼文件由Windows中的Java虛擬機解釋執(zhí)行Applet應(yīng)用程序編譯Java源程序

37、(*.java)字節(jié)碼文件(*.class)運行Windows操作系統(tǒng)Java編譯器javac.exeJava解釋器java.exe下載Windows操作系統(tǒng)運行Java虛擬機嵌入Web瀏覽器超文本(*.html)Application應(yīng)用程序1.3.2 運行Java程序JDK提供的編譯與運行命令提供的編譯與運行命令編譯編譯運行運行Application應(yīng)用程序應(yīng)用程序運行運行Applet應(yīng)用程序應(yīng)用程序1.4 包1.4.1 包的包的1.4.2 創(chuàng)建、聲明和導入包創(chuàng)建、聲明和導入包包的概念1.問題的提出問題的提出:程序運行中當一個類需要引用另一程序運行中當一個類需要引用另一個類時,個類時,Ja

38、va虛擬機默認在當前文件夾中尋找。虛擬機默認在當前文件夾中尋找。包也可以用來避免類重名。包也可以用來避免類重名。2.什么是包什么是包從邏輯概念看,包(從邏輯概念看,包(package)是類的集合,一個包)是類的集合,一個包中包含多個類;中包含多個類;從存儲概念看,包是類的組織方式,一個包對應(yīng)一個從存儲概念看,包是類的組織方式,一個包對應(yīng)一個文件夾,一個文件夾中包含多個字節(jié)碼文件;文件夾,一個文件夾中包含多個字節(jié)碼文件;包與類的關(guān)系,就像文件夾與文件的關(guān)系一樣。包中包與類的關(guān)系,就像文件夾與文件的關(guān)系一樣。包中還可以再有子包,稱為包等級,子包對應(yīng)一個子文件還可以再有子包,稱為包等級,子包對應(yīng)一個

39、子文件夾。夾。1.Why: 2.What:java-doc3.How:1.一個包中的多個類之間不能重名,不同包一個包中的多個類之間不能重名,不同包中的類則可以相同。中的類則可以相同。2.系統(tǒng)不會自動創(chuàng)建包對應(yīng)的文件夾及其子系統(tǒng)不會自動創(chuàng)建包對應(yīng)的文件夾及其子文件夾,必須由程序員自己創(chuàng)建。文件夾,必須由程序員自己創(chuàng)建。創(chuàng)建、聲明和導入包設(shè)置環(huán)境變量設(shè)置環(huán)境變量set classpath=.;C:Program FilesJavajdk1.5.0lib;C:javacode聲明類所在的包聲明類所在的包package 包包1.包包2;例如,例如,package mypackage; /聲明所在的包聲

40、明所在的包public interface PlaneGraphics2引用包中的類引用包中的類包包1.包包2.類類|接口接口創(chuàng)建、聲明和導入包導入包導入包import 包包1.包包2.類類|接口接口|*;import mypackage.PlaneGraphics2;默認包路徑:當前文件夾默認包路徑:當前文件夾 包之間類及類中成員的訪問權(quán)限包之間類及類中成員的訪問權(quán)限包中非內(nèi)部的類或接口只有包中非內(nèi)部的類或接口只有2種訪問權(quán)限:種訪問權(quán)限:public和缺省。和缺省。在類中成員的在類中成員的4種訪問權(quán)限中,種訪問權(quán)限中,public和和private權(quán)權(quán)限與包無關(guān),而限與包無關(guān),而protected和缺省權(quán)限與包有關(guān)。和缺省權(quán)限與包有關(guān)。創(chuàng)建、聲明和導入包Java源程序結(jié)構(gòu)源程序結(jié)構(gòu)package /聲明包,聲明包,01句句import /導入包,導入包,0多句多句public class 或或interface /聲明公有類或接口,聲明公有類或接口,01句,文件名與該名相同句,文件名與該名相同class/聲明默認類,聲明默認類,0多句多句interface/聲明接口,聲明接口,0多句多句包

溫馨提示

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

評論

0/150

提交評論