JAVA大學(xué)教學(xué)課件第一章緒論.ppt_第1頁
JAVA大學(xué)教學(xué)課件第一章緒論.ppt_第2頁
JAVA大學(xué)教學(xué)課件第一章緒論.ppt_第3頁
JAVA大學(xué)教學(xué)課件第一章緒論.ppt_第4頁
JAVA大學(xué)教學(xué)課件第一章緒論.ppt_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Java語言程序設(shè)計(jì),主講:xxx, Java語言程序設(shè)計(jì),第一章: 緒論,1.1 Java語言的歷史-1,Java 是什么嗎?,Just another valueless acronym,Java 是一個(gè)地名嗎?,1.1 Java語言的歷史-2,1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)了一個(gè)代號為Green的項(xiàng)目 ,其目的是為家用消費(fèi)電子產(chǎn)品開發(fā)一個(gè)分布式代碼系統(tǒng),這樣我們可以通過手機(jī)、E-mail等方式發(fā)指令給電冰箱電視機(jī)等家用電器,對它們進(jìn)行控制,和它們進(jìn)行信息交流。 開始,準(zhǔn)備采用C+,但C+太復(fù)雜,安全性差,最后基于C+開發(fā)一種新的語言O(shè)ak。Oak是一種用于網(wǎng)絡(luò)

2、的精巧而安全的語言,Sun公司曾依此投標(biāo)一個(gè)交互式電視項(xiàng)目,但結(jié)果是被SGI打敗??蓱z的Oak幾乎無家可歸,恰巧這時(shí)MarkArdreesen開發(fā)的Mosaic和Netscape啟發(fā)了Oak項(xiàng)目組成員,他們用Java編制了HotJava瀏覽器,結(jié)果Java一夜成名,迅速流行,甚至被譽(yù)為Internet上的世界語。,1.1 Java語言的歷史-3,Java的取名也有一趣聞,有一天,幾位Java成員組的會(huì)員正在討論給這個(gè)新的語言取什么名字,當(dāng)時(shí)他們正在咖啡館喝著Java(爪哇)咖啡,有一個(gè)人靈機(jī)一動(dòng)說就叫Java怎樣,得到了其他人的贊賞,于是,Java這個(gè)名字就這樣傳開了。,Java創(chuàng)始人 Jam

3、es Gosling博士,1.2 什么是 Java -1,JavaTM 技術(shù)是: 1、程序設(shè)計(jì)語言 2、平臺 (開發(fā)環(huán)境、應(yīng)用程序環(huán)境 ),1.2 什么是 Java -2,一、Java是一種高級程序設(shè)計(jì)語言,并具有如下特征: 簡單性、面向?qū)ο?、分布式、解釋型、健壯?安全性、可移植性、高性能、多線程、動(dòng)態(tài)性,Java 虛擬機(jī) (JVM) 垃圾收集 代碼安全性,1.2 什么是 Java -3,Java程序先被編譯,然后被解釋執(zhí)行。通過編譯器,可以把Java程序編譯成一種中間代碼字節(jié)碼(Byte-code)。字節(jié)碼是可以被Java解釋器解釋的獨(dú)立于平臺的代碼,是運(yùn)行在Java虛擬機(jī)(Java VM

4、)上的機(jī)器代碼指令。通過解釋器,每條Java字節(jié)指令被分析,然后在計(jì)算機(jī)上運(yùn)行。下圖說明了它是如何工作的:,1.2 什么是 Java -4,Java字節(jié)碼使得“一次編寫,到處運(yùn)行”成為可能??梢栽谌魏斡蠮ava編譯器的平臺上把Java程序編譯成字節(jié)碼。這個(gè)字節(jié)碼可以運(yùn)行在任何Java VM上。例如,同一個(gè)Java程序可以運(yùn)行在WindowsNT、Solaris和Macintosh上,甚至這個(gè)JVM可以是個(gè)硬件、一塊芯片。,1.2 什么是 Java -5,JavaTM 虛擬機(jī)(JVM)規(guī)范 : Java虛擬機(jī)(JVM)是可運(yùn)行Java字節(jié)碼的假想計(jì)算機(jī)。只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的

5、計(jì)算機(jī)上,就能保證經(jīng)過編譯的任何Java代碼能夠在該系統(tǒng)上運(yùn)行。 Java虛擬機(jī)(JVM)規(guī)范是一種用于計(jì)算設(shè)備的規(guī)范,可用不同的方式(軟件或硬件)加以實(shí)現(xiàn)。Java虛擬機(jī)包括一套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲方法域。編譯虛擬機(jī)的指令集與編譯微處理器的指令集非常類似。,1.2 什么是 Java -6,JavaTM 內(nèi)存垃圾自動(dòng)回收(Garbage Collector) JavaTM 程序設(shè)計(jì)語言使程序員不必負(fù)責(zé)釋放內(nèi)存,因?yàn)樗峁┝艘粋€(gè)后臺系統(tǒng)級線程,用于記錄每一個(gè)內(nèi)存分配操作并保留對每個(gè)內(nèi)存指針的引用計(jì)數(shù)。在 Java 虛擬機(jī)運(yùn)行時(shí)的空閑周期內(nèi),垃圾收集線程查看是

6、否有引用數(shù)已降到 0 的內(nèi)存指針。如果有,則清除(解除分配)垃圾收集線程所標(biāo)記的內(nèi)存。 垃圾收集在 Java 應(yīng)用程序的生命期內(nèi)自動(dòng)發(fā)生,因此不必手動(dòng)解除對內(nèi)存的分配。,1.2 什么是 Java -7,JavaTM 不存在可信任代碼 安全機(jī)制 Java 程序設(shè)計(jì)語言代碼在計(jì)算機(jī)上實(shí)際運(yùn)行之前已經(jīng)過幾遍測試。字節(jié)碼檢驗(yàn)器對程序代碼進(jìn)行四遍測試。它確保代碼遵守 JVM 規(guī)范且不違反系統(tǒng)完整性。如果檢驗(yàn)器完成所有四遍測試并且未返回錯(cuò)誤信息,則可以確信下列情況屬實(shí): 1、類遵守 JVM 規(guī)范的類文件格式。 2、沒有違反存取限制。 3、代碼不導(dǎo)致操作數(shù)堆棧溢出或下溢。 4、所有操作碼的參數(shù)類型正確。 5

7、、沒有發(fā)生非法數(shù)據(jù)轉(zhuǎn)換,例如將整型轉(zhuǎn)換為指針。 6、對象字段存取合法。,1.2 什么是 Java -8,1.2 什么是 Java -9,二、平臺是程序運(yùn)行的硬件或軟件環(huán)境。Java平臺與大多數(shù)其它平臺不同之處在于它是運(yùn)行于其它基于硬件平臺的純軟件平臺。大多數(shù)其它平臺是硬件和操作系統(tǒng)的結(jié)合。 Java平臺由兩部分組成: Java虛擬機(jī)(Java VM) (應(yīng)用程序環(huán)境) Java應(yīng)用程序界面(Java API) (開發(fā)環(huán)境) 我們已經(jīng)介紹了Java VM,它是Java平臺的基礎(chǔ),可以移植到各種基于硬件的平臺上。( Java操作系統(tǒng)或Java芯片) Java API是軟件組件的集合,它們提供了很多

8、有用的功能,如圖形用戶界面(GUI)。Java API被分組為相關(guān)組件的庫(包)。,1.2 什么是 Java -10,作為一種獨(dú)立于平臺的環(huán)境,Java比本地代碼慢一些。然而,聰明的編譯器、很好地調(diào)制過的解釋器和即時(shí)字節(jié)碼編譯器(JIT - just in time compiler)可以在不犧牲可移植性的條件下使Java的表現(xiàn)接近本地代碼。,1.3 Java 的應(yīng)用領(lǐng)域,Java 已經(jīng)漸漸地滲透到各領(lǐng)域 1。你可以編寫 Java Application 程序,完成其他語言能完成的所有應(yīng)用程序,而且是跨平臺的,可應(yīng)用于各行各業(yè); 2。你可以編寫 Java Applet 程序,可以嵌入在瀏覽器中

9、直接運(yùn)行; 3。你可以編寫 Java Servlet / JSP 程序,將其掛在 Apache 、tomcat或其它網(wǎng)頁服務(wù)器上; 4。你可以編寫 EJB/ Java Beans,將其掛在Websphere、Weblogic、IAS或其他應(yīng)用服務(wù)器上; 5。你可以編寫Java MIDlet 程序,在手機(jī)上執(zhí)行;,1.4 Java 的安裝-1,Java的安裝:( ) JDK(java development kit):jdk-1_4_0_008-win.exe JRE(java runtime environment): jre-1_4_0_008-win.exe 環(huán)境變量的設(shè)置:可通過auto

10、exec.bat文件設(shè)置: SET PATH=c:j2sdk1.4bin;. ; %PATH% SET CLASSPATH= c:j2sdk1.4lib;. ; %CLASSPATH% (其中,JDK安裝在c:j2sdk1.4),1.4 Java 的安裝-2,開發(fā)工具: 一、文字模式(console mode)的開發(fā)工具: Sun 的 Java 2 Software Developmnet Kit( Java 2 SDK ),最新版JavaTM SE 6 ( v1.6.0 ,The number 6 is used to reflect the evolving level of maturi

11、ty, stability, scalability and security of Java SE. )。其中提供24個(gè)工具,都放在bin子目錄中,常用的有javac、 java 、appletviewer等。編輯器可使用記事本。 *關(guān)于版本號的說明:v 1.1.8 前兩個(gè)數(shù)字代表功能的變更,第三個(gè)(以及以后的數(shù)字),代表錯(cuò)誤修訂版。 * J2SE (標(biāo)準(zhǔn)版) J2EE(企業(yè)版)J2ME(微型版),1.4 Java 的安裝-3,二、GUI模式的開發(fā)工具(graphics user interface mode): IDE(Integrated Development Environment,

12、集成式開發(fā)環(huán)境):將程序的編輯、編譯、 執(zhí)行、調(diào)試等功能整合在一起。如Jcreator2, Freejava2等,我們要使用的集成開發(fā)環(huán)境是Jcreator2 。 RAD(Rapid Application Development,快速應(yīng)用程序開發(fā)):除具備IDE功能外,可通過可視(Visual)處理的方法擺設(shè)組件(component),所見既所得,并調(diào)整其屬性(property),使編寫程序(特別是用戶接口部分)就像搭積木一樣簡便。 如Jbuilder: 是 Borland公司產(chǎn)品(最多人使用的開發(fā)工具); VisualAge for Java:是 IBM的產(chǎn)品(最先進(jìn)的開發(fā)工具); Vis

13、ualCafe:是 WebGain的產(chǎn)品(產(chǎn)品家族最完整的開發(fā)工具); NetBeans 、Forte 、 Sun Java Studio :是 Sun的產(chǎn)品; Eclipse:是一種開源的、可擴(kuò)展IDE,是免費(fèi)的。,1.5 第一個(gè)Java程序-1,第一個(gè)“Hello World”小應(yīng)用程序 按照以下步驟,可以創(chuàng)建一個(gè)Java小應(yīng)用程序。 /用C語言實(shí)現(xiàn) # include Main() println(“Hello World”); /用C+語言實(shí)現(xiàn) #include void main() cout“Hello Worldn”;,1.5 第一個(gè)Java程序-2,/用Java語言實(shí)現(xiàn) 1.建

14、立一個(gè)名為HelloWorld.java的文件: public class HelloWorld public static void main(String args) System.out.println(“Hello World”); 2.編譯源文件 用Java編譯器編譯這個(gè)源文件。( javac HelloWorld.java) 如果編譯成功,編譯器產(chǎn)生一個(gè)與Java源文件(HelloWorld.java)在同一個(gè)目錄(文件夾)的名為HelloWorld.class的文件。這個(gè)class文件包含Java字節(jié)碼,是可以被Java運(yùn)行系統(tǒng)解釋的獨(dú)立于平臺的代碼。 3.運(yùn)行小應(yīng)用程序 (ja

15、va HelloWorld ),1.6 Java的反編譯-1,控制臺下的: JAD的使用 圖形用戶界面的: FrontEnd的使用 *使用混淆器加密你的Java程序。,1.7 Java的文檔注釋方法-1,在注釋方面,java提供一種C/C+所不具有的文檔注釋方式。其核心思想是當(dāng)程序員編完程序以后,可以通過JDK提供的javadoc命令(javacdoc 文件名.java) ,生成所編程序的API文檔,而該文檔中的內(nèi)容主要就是從文檔注釋中提取的。該API文檔以HTML文件的形式出現(xiàn),與java幫助文檔的風(fēng)格與形式完全一致。凡是在“/*”和“*/”之間的內(nèi)容都是文檔注釋。例如下面的DocTest.

16、java文件: /* 這是一個(gè)文檔注釋的例子,主要介紹下面這個(gè)類 *author walkman *version 1.1.48 2008/09/1 */ public class DocTest/* 變量注釋,下面這個(gè)變量主要是充當(dāng)整數(shù)計(jì)數(shù) */public int i; /* 方法注釋,下面這個(gè)方法的主要功能是計(jì)數(shù) */public void count( ) ,1.8 Java的學(xué)習(xí)方法-1,在理解課堂教授內(nèi)容的基礎(chǔ)上,盡量獨(dú)立完成課后習(xí)題。對于疑難問題,可采用如下辦法解決: a.參考教材配套書籍或其它相關(guān)書籍,上機(jī)調(diào)試程序,自行解決。問人之前,先問自己 。 b.結(jié)成學(xué)習(xí)小組(3人左右)

17、,互助學(xué)習(xí); c.通過互聯(lián)網(wǎng)的技術(shù)社區(qū)或BBS,向高手請教; d.通過參與開發(fā)開源軟件項(xiàng)目,閱讀源代碼,邊開發(fā) 邊學(xué)習(xí)。 e.通過robocode ,機(jī)器人坦克大戰(zhàn),邊娛樂邊學(xué)習(xí)。,官方網(wǎng)站: ,1.8 Java的學(xué)習(xí)方法-2,向上延伸,向下延伸,向旁延伸 當(dāng)你發(fā)現(xiàn)你已經(jīng)可以掌握此程序語言基本知識之后,你可以選擇: 1、向上延伸:學(xué)習(xí)對象導(dǎo)向分析設(shè)計(jì)、UML、Design Patterns、以及軟件工程。培養(yǎng)自己具有做大型項(xiàng)目的能力。 2、向下深入:深入了解內(nèi)部底層的機(jī)制,例如JVM,操作系統(tǒng)(甚至硬件)內(nèi)部。 3、向旁延伸:學(xué)

18、習(xí)不同的API,例如:多媒體、數(shù)據(jù)庫、企業(yè)運(yùn)算等等,擴(kuò)展自己的編程能力。 另外,數(shù)據(jù)結(jié)構(gòu)、算法等基礎(chǔ)也很重要。,在人月神化中 ,F(xiàn).Brooks 對他自己做的軟件項(xiàng)目描述為:“史前巨獸在柏油坑中做垂死前的掙扎掙扎得越厲害,柏油就會(huì)黏的越緊,沒有任何的猛獸力量夠強(qiáng),技巧夠高,得以逃過終至滅頂?shù)拿\(yùn)。在過去的十年,大型系統(tǒng)的程序設(shè)計(jì)工作就陷進(jìn)了一個(gè)像這樣的柏油坑中?!?在 Quality Softwre Management II 中,G.Weinberg 這樣來描述他自己做軟件項(xiàng)目的經(jīng)驗(yàn):“你身處湖心當(dāng)中,劃著一艘小船,船底有幾個(gè)漏洞,水慢慢的滲進(jìn)來。你想要去堵住漏洞,但卻遭到一大群仲夏兇惡蚊子

19、的攻擊。能夠隨時(shí)注意到是否有問題的發(fā)生,或更進(jìn)一步能預(yù)先加以防范(修補(bǔ)漏洞),理論上說來還不錯(cuò),但是你得一直忙著去干昨日的問題(不停地打蚊子),完全抽不出空來實(shí)現(xiàn)分毫的理論?!?Tom DeMarco 人件,管理,不僅僅是技術(shù),更是充滿人文精神的藝術(shù)。,1.9 Java的參考書籍,Sun公司編著 Java程序員認(rèn)證教材SL-110 Sun公司編著 Java程序員認(rèn)證教材SL-275 機(jī)械工業(yè)出版社 Java編程思想 Java 程序設(shè)計(jì)大學(xué)教程 國外計(jì)算機(jī)經(jīng)典教材 Java2實(shí)用教程 Java 夜未眠,1.10 Java認(rèn)證考試-1,Java認(rèn)證考試(Java方面,Sun推出七項(xiàng)認(rèn)證): - S

20、un Certified Java Associate (SCJA)- Sun Certified Java Programmer (SCJP)- Sun Certified Java Developer (SCJD)- Sun Certified Web Component Developer (SCWCD)- Sun Certified Business Component Developer (SCBCD)- Sun Certified Developer For Java Web Services (SCDJWS)- Sun Certified Mobile Application Developer (SCMAD)- Sun Certified Enterprise Architect (SCEA),1.10 Java認(rèn)證考試-2,1.10 Java認(rèn)證考試-3,SCJP (Sun Certified Java programmer),測試Java編程的觀念和能力,內(nèi)容偏重于Java語法和JDK內(nèi)容。共59題復(fù)選和填充,2小時(shí),61%及格; SCJD (Sun Certified Java developer)測試Java軟件開發(fā)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論