java面向?qū)ο蟪绦蛟O(shè)計課件_第1頁
java面向?qū)ο蟪绦蛟O(shè)計課件_第2頁
java面向?qū)ο蟪绦蛟O(shè)計課件_第3頁
java面向?qū)ο蟪绦蛟O(shè)計課件_第4頁
java面向?qū)ο蟪绦蛟O(shè)計課件_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、主要內(nèi)容Java語言順應(yīng)網(wǎng)絡(luò)時代的編程語言 Java語言的特點 Java程序的編譯環(huán)境和執(zhí)行環(huán)境 第一個Java程序Hello World Java程序的分類 Java平臺 第1頁,共37頁。Java語言網(wǎng)絡(luò)時代的編程語言第2頁,共37頁。網(wǎng)絡(luò)時代編程問題 網(wǎng)絡(luò)帶給我們精彩的同時,也為編程帶來了困難,最為突 出的表現(xiàn)為環(huán)境復(fù)雜 第3頁,共37頁。問題的解決方法 為了實現(xiàn)一個程序能被多個操作系統(tǒng)所認(rèn)識,必須像不同 語言國家的人交流那樣,借助“翻譯”的作用 我是中國人Im a chineseIm an american 我是美國人第4頁,共37頁。 C或C+:只有將編譯后的文件連接成為.exe,才

2、能在Windows操作系統(tǒng)上運(yùn)行。C+的解決策略第5頁,共37頁。Java的解決策略 :一次編譯,處處執(zhí)行 第6頁,共37頁。Java語言的特點第7頁,共37頁。A simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high-performance, multi-threaded, and dynamic language。即:Java是一種具有“簡單、面向?qū)ο?、分布式、解釋型、健壯、安全、與體系結(jié)構(gòu)無關(guān)、可移植、高性能、多線程和動態(tài)執(zhí)行”等特性的

3、語言。Sun公司對Java的定義第8頁,共37頁。簡單性:Java語言簡單而高效,基本Java系統(tǒng)(編譯器和解釋器)所占空間不到250KB。Java的風(fēng)格類似于C+,因而C+程序員初次接觸Java語言,就會感到很熟悉。從某種意義上講,Java語言是C及C+語言的一個變種,因此,C+程序員可以很快地掌握J(rèn)ava編程技術(shù)。Java摒棄了C+中容易引發(fā)程序錯誤的一些特性,如指針、結(jié)構(gòu)、枚舉以及內(nèi)存管理等。Java提供了豐富的類庫,可以幫助我們很方便的開發(fā)Java程序。第9頁,共37頁。面向?qū)ο螅篔ava語言是純面向?qū)ο蟮?。平臺無關(guān)性與可移植性:Java程序不經(jīng)修改或少量修改就可在不同操作系統(tǒng)上運(yùn)行。

4、Java采用了以下機(jī)制:Java既是編譯型又是解釋型的語言。編譯成字節(jié)碼文件,由 Java虛擬機(jī)在不同操作系統(tǒng)上解釋執(zhí)行。Java采用的是基于國際標(biāo)準(zhǔn)(IEEE標(biāo)準(zhǔn))的數(shù)據(jù)類型。此 外,Java編譯器是用Java語言本身所編寫的,整個運(yùn)行時環(huán) 境體現(xiàn)了一個定義良好的可移植性接口。Java遵循POSIX標(biāo) 準(zhǔn),這也使Java具有良好可移植性的重要原因。 第10頁,共37頁。穩(wěn)定性和安全性Java首先摒棄了C+中的不安全的因素指針數(shù)據(jù)類型,避免惡意使用者利用指針去改變不屬于自己程序的內(nèi)存空間。Java致力于檢查程序在編譯和運(yùn)行時的錯誤。Java也是一種強(qiáng)類型的語言,其類型檢查比C+還要嚴(yán)格。類型檢

5、查幫助我們檢查出許多開發(fā)早期出現(xiàn)的錯誤。提供自動內(nèi)存管理機(jī)制,利用系統(tǒng)的空閑時間來執(zhí)行諸如必要的垃圾清除等操作。此外,Java的運(yùn)行環(huán)境還提供字節(jié)碼校驗器、運(yùn)行時內(nèi)存布局和類裝載器(Class Loader)、文件訪問限制等安全措施,保證字節(jié)碼本身的安全和訪問系統(tǒng)資源的安全。第11頁,共37頁。多線程和動態(tài)多線程使應(yīng)用程序可以同時進(jìn)行不同的操作,處理不同的事件。在多線程機(jī)制中,不同的線程處理不同的任務(wù),互不干涉,不會由于某一任務(wù)處于等待狀態(tài)而影響了其它任務(wù)的執(zhí)行,這樣就可以容易的實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。java在執(zhí)行過程中,可以動態(tài)的加載各種類庫,這一特點使之非常適合于網(wǎng)絡(luò)運(yùn)行,同時也非常有

6、利于軟件的開發(fā),即使是更新類庫也不必重新編譯使用這一類庫的應(yīng)用程序。第12頁,共37頁。高性能Java語言在具有可移植性、穩(wěn)定性和安全性的同時,也保持了較高的性能。通常,解釋型語言的執(zhí)行效率一般也要低于直接執(zhí)行源碼的速度。但Java所采用的高效的字節(jié)碼(java字節(jié)碼格式的設(shè)計就是針對機(jī)器碼的轉(zhuǎn)換,實際轉(zhuǎn)換時相當(dāng)簡便)與多線程措施卻很好地彌補(bǔ)了這些性能差距。 第13頁,共37頁。分布式,分布概念包括數(shù)據(jù)分布和操作分布兩個方面數(shù)據(jù)分布是指數(shù)據(jù)可以分散存放于網(wǎng)絡(luò)上的不同主機(jī)中,以解決海量數(shù)據(jù)的存儲問題; Java提供了一個URL對象,利用此對象我們可以打開并訪問網(wǎng)絡(luò)上的對象,其訪問方式與訪問本地文

7、件系統(tǒng)幾乎完全相同。操作分布則指把計算分散到不同的主機(jī)上進(jìn)行處理。Java的客戶機(jī)服務(wù)器模式可以把計算從服務(wù)器分散到客戶端,從而提高整個系統(tǒng)的執(zhí)行效率,避免瓶頸制約,增加動態(tài)可擴(kuò)充性。第14頁,共37頁。Java程序的編譯環(huán)境和執(zhí)行環(huán)境第15頁,共37頁。一種是編譯環(huán)境,編譯環(huán)境的建立需要到Sun的官方網(wǎng)站上下載JDK(JavaDevelopmentKit),網(wǎng)址為:。一種是運(yùn)行環(huán)境。運(yùn)行環(huán)境需要到Sun的官方網(wǎng)站上下載JRE(JavaRuntimeEnvironment)注意:如果是在Windows上開發(fā)軟件,需要選擇Windows類型的 JDK,Unix和Linux同理;JDK的版本不斷升

8、級,如JDK1.0、 JDK1.1、JDK1.2、JDK1.3、JDK1.4、JDK1.5,JDK1.2以 后的版本,通稱為Java2,JDK后續(xù)版本不完全確保與前一 個版本兼容,作為初學(xué)者,可下載當(dāng)前最新的版本。Java源代碼從編譯到解釋執(zhí)行涉及兩種環(huán)境第16頁,共37頁。適用不同操作系統(tǒng)的JDK版本第17頁,共37頁。運(yùn)行環(huán)境的建立運(yùn)行環(huán)境負(fù)責(zé)裝載用戶自定義的類(分為從本地裝載和從網(wǎng)絡(luò)裝載兩種)和JavaAPI類,最重要的是,含有JVM(JavaVirtualMachine),它是一個平臺軟件,負(fù)責(zé)將字節(jié)碼解釋成機(jī)器碼并提交操作系統(tǒng)執(zhí)行。如果在一臺機(jī)器上安裝了JDK,則自動也安裝了對應(yīng)版本

9、的JRE。如果希望JRE是另一種版本,則需要在【添加修改程序】中卸載舊版本的JRE,再安裝新版本的JRE。第18頁,共37頁。第一個Java程序Hello World 第19頁,共37頁。步 驟分為五個步驟:進(jìn)行JDK的安裝,配置環(huán)境變量,編寫程序,編譯和執(zhí)行程序。JDK的安裝:執(zhí)行下載的文件【jdk-1_5_0_04-windows- i586-p.exe】,安裝目錄可定為【d:jdk1.5.0】。【bin】 子目錄下,存在jdk眾多的工具集。說明javacJava編譯器,將java源程序編譯成與系統(tǒng)無關(guān)的字節(jié)碼(.class文件)javaJava解釋器,用于解釋執(zhí)行java字節(jié)碼apple

10、tviewer小應(yīng)用程序程序瀏覽器,用于測試運(yùn)行appletjavadocJava文檔生成器jar打包工具第20頁,共37頁。環(huán)境配置:桌面上選擇【我的電腦】(右鍵)【屬性】【高級】【環(huán)境變量】【系統(tǒng)變量】,選擇【path】,點【編輯】,在【變量值】欄目的最前面,輸入“d:jdk1.5.0bin;”。編寫程序:在沒有安裝集成開發(fā)工具的前提下,可以選擇一些文本編輯器書寫Java代碼,如“EditPlus2”、“UltraEdit”、“JCreator”等,當(dāng)前也可以在Windows操作系統(tǒng)中的“記事本”編寫程序。第21頁,共37頁。書寫代碼,將文件保存在D:myJavaHelloWorld.ja

11、vapublicclassHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(HelloWorld!); 編譯:選擇【開始】【運(yùn)行】,進(jìn)入Dos界面如下圖所示,鍵入javac HelloWorld.java執(zhí)行:編譯通過后,輸入java HelloWorld第22頁,共37頁。程序說明類名和文件名應(yīng)該同名,同為HelloWorld。main方法前的修飾符必須為public static void 。System.out.println()用于輸出,其參數(shù)可以為字符串,也可為數(shù)。方法println的作用是換行,如果不換行,則調(diào)

12、用print方法。第23頁,共37頁??赡苡龅降膯栴}(一)問題 編譯出現(xiàn)“javac不是內(nèi)部命令,也不是可運(yùn)行程序”的問題。解決方案 path路徑?jīng)]有設(shè)對,在dos窗口下,輸入path,看是否包括d:jdk1.5.0,沒有或設(shè)置不正確,重新設(shè)置path環(huán)境變量。第24頁,共37頁。可能遇到的問題(二)首先檢查是否將HelloWorld文件名寫對否,包括大小寫;其次,編譯時帶“.java”后綴名,執(zhí)行時不帶“.class”后綴;javac中指出java源文件時能帶windows的路徑,但執(zhí)行時用java不可以,如:java d:testHelloWorld則不行,因為java將“d:testHe

13、lloWorld”當(dāng)成一個字節(jié)碼文件了;環(huán)境變量中設(shè)置了classpath,由于當(dāng)前目錄沒有包含其中,所以java執(zhí)行時,對當(dāng)前目錄的HelloWorld.class視而不見,解決方法為去掉classpath環(huán)境變量,或在其中加入當(dāng)前目錄即可。問題:編譯和執(zhí)行時出現(xiàn)NoClassDefFoundError的錯誤。解決方案:(可能性有四個 )第25頁,共37頁??赡苡龅降膯栴}(三)問題 編譯時出現(xiàn)error: cannot read: HelloWorld.java解決方案 在windows設(shè)置成不顯示后綴名的形式,然而在起文件名時,給文件名起了HelloWorld.java,造成實際文件名為H

14、elloWorld.java.java。在【工具】【文件夾選項】【查看】中不選擇“隱藏已只文件類型的擴(kuò)展名”,可見到帶后綴的所有文件名。第26頁,共37頁??赡苡龅降膯栴}(四)問題 執(zhí)行出現(xiàn)“Error:could not found libi386jvm.cfg”問題解決方案 主要是安裝集成環(huán)境以及Oracle數(shù)據(jù)庫后,這些產(chǎn)品也安裝了不同版本jdk造成的(通過java version看當(dāng)前是哪個版本),解決方法是將d:jdk1.5.0放置在path路徑的最前端。 注:若在一臺機(jī)器上安裝多個版本的JDK,如果需要使用其中特定某一版本,需要通過path設(shè)置來決定啟用哪個版本。第27頁,共37頁

15、。Java程序的分類 第28頁,共37頁。從大類上分為Application和Applet。前面的HelloWorld就是Application程序,它們之間的主要區(qū)別如下:ApplicationApplet 程序 標(biāo)志靜態(tài)main方法繼承java.applet.Applet,方法中為void paint(Graphics g) 運(yùn)行獨立運(yùn)行,利用java工具不能獨立運(yùn)行,需要依賴瀏覽器,用appletviewer工具來調(diào)試JAVA程序的分類第29頁,共37頁。將HelloWorld改寫成Applet程序import java.awt.*;import java.applet.*;public

16、 class HelloWorldApplet extends Applet public void init() public void paint(Graphics g) g.drawString(Hello World!,25,25); 編輯html頁面,和HelloWorldApplet.class在同一目錄,取名為c1_2.html,在其中編寫代碼:執(zhí)行結(jié)果:第30頁,共37頁。程序說明程序中的import,相當(dāng)于C語言中的include,是使用已經(jīng)編譯好的類的語法(包括API中的類),在上面的程序當(dāng)中,如果沒有import java.awt.*;則Graphics類不可使用;沒有i

17、mport java.applet.*;則Applet類不可使用。Graphics類用于繪圖。paint方法(名字不可更改)用于界面刷新第31頁,共37頁。問題 瀏覽器applet程序不顯示輸出結(jié)果問題的解決html中類名書寫是否正確;是否注意大小寫;標(biāo)識語句之間是否有空格;在瀏覽器中【工具】-【Internet選項】【高級】中的“使用Java2用于Applet”。paint方法名是否書寫正確。執(zhí)行中可能遇到的問題第32頁,共37頁。為什么Applet需要嵌入瀏覽器執(zhí)行這是由Java語言是網(wǎng)絡(luò)時代編程語言的特點決定的。為了屏蔽眾多瀏覽器下運(yùn)行的語法差異,Applet應(yīng)運(yùn)而生。雖然Applet不

18、能單獨運(yùn)行,但是所有的瀏覽器都支持嵌入Applet小程序,在編寫HelloWorld時候,程序編寫者不用關(guān)心這個Applet將來運(yùn)行在哪個瀏覽器中,他只關(guān)心在瀏覽器中需要做什么工作,而且用統(tǒng)一的語法去編寫程序。第33頁,共37頁。Applet在瀏覽器中如何工作的?Applet是Java程序,需要JVM來解釋執(zhí)行,現(xiàn)在所有的瀏覽器都嵌有JVM,當(dāng)瀏覽器中載入Applet程序時,首先調(diào)用Applet的init()方法完成初始化工作(只調(diào)用一次),最后調(diào)用paint()方法進(jìn)行圖形的繪制。當(dāng)瀏覽器被別的界面覆蓋后重新顯現(xiàn),當(dāng)瀏覽器移動,當(dāng)瀏覽器尺寸改變時,此方法被重新調(diào)用。從而可見,Applet不像Application程序那樣,有main的程序入口,因此不能單獨運(yùn)行,需要借助瀏覽器來執(zhí)行。第34頁,共37頁。Java平臺第35頁,共37頁。 Java不僅是編程語言,還是一個開發(fā)平臺。 目前Sun公司把java平臺劃分成J2EE、J2SE、J2ME三 個平臺,

溫馨提示

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

最新文檔

評論

0/150

提交評論