




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 java程序設(shè)計(jì)第一章第一章: 緒論緒論1.1 java語(yǔ)言的歷史-1 java 是什么嗎?just another valueless acronymjava 是一個(gè)地名嗎?1.1 java語(yǔ)言的歷史-2 1991年4月,sun公司的james gosling(詹姆斯高斯林)領(lǐng)導(dǎo)了一個(gè)代號(hào)為green的項(xiàng)目 ,其目的是為家用消費(fèi)電子產(chǎn)品開發(fā)一個(gè)分布式代碼系統(tǒng)。 編程語(yǔ)言:基于c+,開發(fā)一種新的語(yǔ)言oak。 javajava創(chuàng)始人創(chuàng)始人 james goslingjames gosling博士博士1.1 java語(yǔ)言的歷史-3 java由來: 項(xiàng)目組骨干人員在咖啡館品嘗著美味的java(爪哇
2、島特產(chǎn))咖啡。java成名:項(xiàng)目組編寫了能夠運(yùn)行java程序的hotjava網(wǎng)絡(luò)瀏覽器,結(jié)果java一夜成名,迅速流行,甚至被譽(yù)為internet上的世界語(yǔ)。1.2 什么是 java -1n javatm 技術(shù)是: 1、程序設(shè)計(jì)語(yǔ)言 2、計(jì)算平臺(tái) (開發(fā)環(huán)境、應(yīng)用程序環(huán)境 )1.2 什么是 java -2 n一、java是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,并具有如下特點(diǎn): 簡(jiǎn)單性、面向?qū)ο?、分布式、解釋型、健壯?安全性、可移植性、高性能、多線程、動(dòng)態(tài)性1.2 什么是 java -3njava程序先被編譯,然后被解釋執(zhí)行。通過編譯器,可以把java程序編譯成一種中間代碼字節(jié)碼(byte-code)。字節(jié)碼
3、是可以被java解釋器解釋的獨(dú)立于平臺(tái)的代碼,是運(yùn)行在java虛擬機(jī)(java vm)上的機(jī)器代碼指令。通過解釋器,每條java字節(jié)指令被分析,然后在計(jì)算機(jī)上運(yùn)行。1.2 什么是 java -4 java字節(jié)碼使得“一次編寫,到處運(yùn)行”成為可能。可以在任何有java編譯器的平臺(tái)上把java程序編譯成字節(jié)碼。這個(gè)字節(jié)碼可以運(yùn)行在任何java vm上。例如,同一個(gè)java程序可以運(yùn)行在windowsnt、solaris和macintosh上,甚至這個(gè)jvm可以是個(gè)硬件、一塊芯片。1.2 什么是 java -5njavatm 虛擬機(jī)(虛擬機(jī)(jvm)規(guī)范規(guī)范 : java虛擬機(jī)(jvm)是可運(yùn)行ja
4、va字節(jié)碼的假想計(jì)算機(jī)。只要根據(jù)jvm規(guī)格描述將解釋器移植到特定的計(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è)存儲(chǔ)方法域。編譯虛擬機(jī)的指令集與編譯微處理器的指令集非常類似。 1.2 什么是 java -6njavatm 內(nèi)存垃圾自動(dòng)回收(內(nèi)存垃圾自動(dòng)回收(garbage collector) javatm 程序設(shè)計(jì)語(yǔ)言使程序員不必負(fù)責(zé)釋放內(nèi)存,因?yàn)樗峁┝艘粋€(gè)后臺(tái)系統(tǒng)級(jí)線程,用于記錄每一個(gè)內(nèi)存分配操作并保留
5、對(duì)每個(gè)內(nèi)存指針的引用計(jì)數(shù)。在 java 虛擬機(jī)運(yùn)行時(shí)的空閑周期內(nèi),垃圾收集線程查看是否有引用數(shù)已降到 0 的內(nèi)存指針。如果有,則清除(解除分配)垃圾收集線程所標(biāo)記的內(nèi)存。 垃圾收集在 java 應(yīng)用程序的生命期內(nèi)自動(dòng)發(fā)生,因此不必手動(dòng)解除對(duì)內(nèi)存的分配。 1.2 什么是 java -7njavatm 不存在不可信任代碼不存在不可信任代碼 安全機(jī)制安全機(jī)制 java 程序設(shè)計(jì)語(yǔ)言代碼在計(jì)算機(jī)上實(shí)際運(yùn)行之前已經(jīng)過幾遍測(cè)試。字節(jié)碼檢驗(yàn)器對(duì)程序代碼進(jìn)行四遍測(cè)試。它確保代碼遵守 jvm 規(guī)范且不違反系統(tǒng)完整性。如果檢驗(yàn)器完成所有四遍測(cè)試并且未返回錯(cuò)誤信息,則可以確信下列情況屬實(shí): 1、類遵守 jvm 規(guī)范
6、的類文件格式。 2、沒有違反存取限制。 3、代碼不導(dǎo)致操作數(shù)堆棧溢出或下溢。 4、所有操作碼的參數(shù)類型正確。 5、沒有發(fā)生非法數(shù)據(jù)轉(zhuǎn)換,例如將整型轉(zhuǎn)換為指針。 6、對(duì)象字段存取合法。 1.2 什么是 java -81.2 什么是 java -9二、平臺(tái)是程序運(yùn)行的硬件或軟件環(huán)境。java平臺(tái)由兩部分組成: java虛擬機(jī)(java vm) (應(yīng)用程序環(huán)境) java應(yīng)用程序界面(java api) (開發(fā)環(huán)境)njava vm,它是java平臺(tái)的基礎(chǔ),可以移植到各種基于硬件的平臺(tái)上。( java操作系統(tǒng)或java芯片)njava api是軟件組件的集合,它們提供了很多有用的功能,如圖形用戶界面
7、(gui)。java api被分組為相關(guān)組件的庫(kù)(包)。1.2 什么是 java -10 作為一種獨(dú)立于平臺(tái)的環(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ǔ)言能完成的所有應(yīng)用程序,而且是跨平臺(tái)的,可應(yīng)用于各行各業(yè);2。你可以編寫 java applet 程序,可以嵌入在瀏覽器中直接運(yùn)行;3。你可以編寫 java
8、servlet / jsp 程序,將其掛在 apache 、tomcat或其它網(wǎng)頁(yè)服務(wù)器上;4。你可以編寫 ejb/ java beans,將其掛在websphere、weblogic、ias或其他應(yīng)用服務(wù)器上;5。你可以編寫java midlet 程序,在手機(jī)上執(zhí)行;1.4 java 的安裝-1ljava的安裝:( http:/) jdk(java development kit): jdk-1_6_0_008-win.exe jre(java runtime environment): jre-1_6_0_008-win.exel環(huán)境變量的設(shè)置:可通過autoexec.bat文件設(shè)置: s
9、et path=c:j2sdk1.6bin;. ; %path% set classpath= c:j2sdk1.6lib;. ; %classpath% (其中,jdk安裝在c:j2sdk1.6) 1.4 java 的安裝-2l開發(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 maturity, stability, s
10、calability and security of java se. )。其中提供24個(gè)工具,都放在bin子目錄中,常用的有javac、 java 、appletviewer等。編輯器可使用記事本。 *關(guān)于版本號(hào)的說明: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,集成開發(fā)環(huán)境):將程序的編輯、編譯
11、、 執(zhí)行、調(diào)試等功能整合在一起。如jcreator2, freejava2等。 rad(rapid application development,快速應(yīng)用程序開發(fā)):除具備ide功能外,可通過可視(visual)處理的方法擺設(shè)組件(component),所見既所得,并調(diào)整其屬性(property),使編寫程序(特別是用戶接口部分)就像搭積木一樣簡(jiǎn)便。如 jbuilder: borland公司產(chǎn)品; eclipse:一種開源的、可擴(kuò)展ide,是免費(fèi)的,我們要使用的集成開發(fā)環(huán)境是eclipse 。1.5一個(gè)一個(gè)java程序的開發(fā)過程程序的開發(fā)過程1.5.1 一個(gè)java應(yīng)用程序-1 第一個(gè)“he
12、llo world”應(yīng)用程序 按照以下步驟,可以創(chuàng)建一個(gè)java應(yīng)用程序。/用c語(yǔ)言實(shí)現(xiàn)# include main()println(“hello world”);/用c+語(yǔ)言實(shí)現(xiàn)#include void main()coutjavac boy.javan運(yùn)行運(yùn)行java applet由瀏覽器來運(yùn)行,因此我們必由瀏覽器來運(yùn)行,因此我們必須編寫一個(gè)超文本文件須編寫一個(gè)超文本文件 (含有(含有applet標(biāo)記的標(biāo)記的web頁(yè))通知瀏覽器來運(yùn)行這個(gè)頁(yè))通知瀏覽器來運(yùn)行這個(gè)java applet。以下是。以下是一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的html文件:文件:boy.html n如果瀏覽器不支持如果瀏覽器不
13、支持java applet程序程序(比如比如win xp 自帶的自帶的ie),你也可以使用,你也可以使用sdk提供的提供的appletviewer來調(diào)試小程序,如,在來調(diào)試小程序,如,在dos命令行命令行執(zhí)行執(zhí)行:c:1000appletviewer boy.html 總結(jié):n1、一個(gè)java源文件是由若干個(gè)類組成的。n一個(gè)java應(yīng)用程序必須有一個(gè)類含有main方法,這個(gè)類稱為應(yīng)用程序的主類。main方法是程序開始執(zhí)行的位置。n2、帶public的類稱為公共類,一個(gè)源文件中只能有一個(gè)類是public的。n3、源文件的命名規(guī)則:n源文件只有一個(gè)類,用類名做源文件名;n如有多個(gè)類,有一個(gè)publ
14、ic類,用該類名做源文件名,n 沒有public類,用任意類名做源文件名。n類名第一個(gè)字母大寫,后面小寫,源文件擴(kuò)展名為.javan當(dāng)有多個(gè)類時(shí),運(yùn)行java命令后的類名必須是包含了main方法的那個(gè)類的名字,即主類名字,如例2。n4、一個(gè)java小應(yīng)用程序也是由若干個(gè)類組成的,一個(gè)小程序不再需要main方法,但必須有且只有一個(gè)類擴(kuò)展了applet類,即它是applet類的子類。把該類叫小程序的主類,主類必須是public的。n復(fù)習(xí)思考題:(1)試分析java的跨平臺(tái)機(jī)制?(2)如何設(shè)置java中的環(huán)境變量? 1.6 java的反編譯-1 控制臺(tái)下的: jad的使用 圖形用戶界面的: fron
15、tend的使用 *使用混淆器加密你的java程序。1.7 java的文檔注釋方法-1 在“/*”和“*/”之間的內(nèi)容都是文檔注釋。當(dāng)程序員編完程序以后,可以通過jdk提供的javadoc命令(javacdoc 文件名.java),生成所編程序的api文檔。該api文檔以html文件的形式出現(xiàn),與java幫助文檔的風(fēng)格與形式完全一致。例如下面的doctest.java文件: /* 這是一個(gè)文檔注釋的例子,主要介紹下面這個(gè)類 *author walkman *version 1.1.48 2008/09/1 */ public class doctest/* 變量注釋,下面這個(gè)變量主要是充當(dāng)整數(shù)計(jì)
16、數(shù) */public int i; /* 方法注釋,下面這個(gè)方法的主要功能是計(jì)數(shù) */public void count( ) 1.8 java的學(xué)習(xí)方法-1 在理解課堂教授內(nèi)容的基礎(chǔ)上,盡量獨(dú)立完成課后習(xí)題。對(duì)于疑難問題,可采用如下辦法解決: a.參考教材配套書籍或其它相關(guān)書籍,上機(jī)調(diào)試程序,自行解決。問人之前,先問自己?jiǎn)柸酥?,先問自?。 b.結(jié)成學(xué)習(xí)小組(3人左右),互助學(xué)習(xí); c.通過互聯(lián)網(wǎng)的技術(shù)社區(qū)或bbs,向高手請(qǐng)教; csdn論壇 http:/ d.通過參與開發(fā)開源軟件項(xiàng)目,閱讀源代碼,邊開發(fā) 邊學(xué)習(xí)。(成為高手) e.通過robocode ,機(jī)器人坦克大戰(zhàn),邊娛樂邊學(xué)習(xí)。官方
17、網(wǎng)站: http:/ java的學(xué)習(xí)方法-2 向上延伸,向下延伸,向旁延伸向上延伸,向下延伸,向旁延伸 當(dāng)你發(fā)現(xiàn)你已經(jīng)可以掌握此程序語(yǔ)言基本知識(shí)之后,你可以選擇: 1、向上延伸:學(xué)習(xí)對(duì)象導(dǎo)向分析設(shè)計(jì)、uml、design patterns、以及軟件工程。培養(yǎng)自己具有做大型項(xiàng)目的能力。 2、向下深入:深入了解內(nèi)部底層的機(jī)制,例如jvm,操作系統(tǒng)(甚至硬件)內(nèi)部。 3、向旁延伸:學(xué)習(xí)不同的api,例如:多媒體、數(shù)據(jù)庫(kù)、企業(yè)運(yùn)算等等,擴(kuò)展自己的編程能力。 另外,數(shù)據(jù)結(jié)構(gòu)、算法等基礎(chǔ)也很重要。 在人月神化中 ,f.brooks 對(duì)他自己做的軟件項(xiàng)目描述為:“史前巨獸在柏油坑中做垂死前的掙扎掙扎得越厲害
18、,柏油就會(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)來。你想要去堵住漏洞,但卻遭到一大群仲夏兇惡蚊子的攻擊。能夠隨時(shí)注意到是否有問題的發(fā)生,或更進(jìn)一步能預(yù)先加以防范(修補(bǔ)漏洞),理論上說來還不錯(cuò),但是你得一直忙著去干昨日的問題(不停地打蚊子),完全抽不出空來實(shí)現(xiàn)分毫的理論?!眛om demarco 人件,管理,不僅僅是技
19、術(shù),更是充滿人文精神的藝術(shù)。1.9 java的參考書籍 sun公司編著 java程序員認(rèn)證教材sl-110 sun公司編著 java程序員認(rèn)證教材sl-275機(jī)械工業(yè)出版社 java編程思想java 程序設(shè)計(jì)大學(xué)教程 國(guó)外計(jì)算機(jī)經(jīng)典教材java2實(shí)用教程 java 夜未眠1.10 java認(rèn)證考試-1 java認(rèn)證考試認(rèn)證考試(java方面,方面,sun推出七項(xiàng)認(rèn)證推出七項(xiàng)認(rèn)證):- sun 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 certi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保潔與員工合同范本
- 住宅加裝電梯工程合同范例
- 出售尼龍水箱合同范本
- 與政府合作合同范本
- 內(nèi)控合同范本
- 協(xié)商撤銷合同范例
- 勞動(dòng)合同范本 病假
- 單位租住房合同范本
- 個(gè)人蓋房合同范本
- 中醫(yī)醫(yī)聯(lián)體合同范本
- PPT用中國(guó)地圖(可編輯)
- 基于德育的農(nóng)村中小學(xué)校園欺凌現(xiàn)象的解決對(duì)策優(yōu)秀獲獎(jiǎng)科研論文
- 鐵路工程概預(yù)算-工程經(jīng)濟(jì)管理培訓(xùn)-課件
- 小學(xué)英語(yǔ)一般現(xiàn)在時(shí)-(演示)課件
- 面部激素依賴性皮炎的管理課件
- 盧卡奇教學(xué)講解課件
- 智慧環(huán)衛(wèi)項(xiàng)目建設(shè)方案
- 焊接作業(yè)現(xiàn)場(chǎng)環(huán)境溫度濕度記錄
- 長(zhǎng)期護(hù)理保險(xiǎn)待遇資格申請(qǐng)表
- 馬克思主義基本原理教案:第一章+教案
- 【腳手架計(jì)算書】 腳手架計(jì)算書詳細(xì)步驟
評(píng)論
0/150
提交評(píng)論