




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章 Java語言概述,1,1.1 Java的歷史,(前身)OAK(James Gosling 1990) 90年,Sun公司開始Green工程 93年,WWW席卷全球 94年,開始定位于Internet 95年,Java命名 Hotjava, 第一個支持Java的瀏覽器 Netscape2.0 1995.5.23 Java誕生(Java1.0.2 API) 1997.2.18 JDK1.1 (java1.1 API) VJ+6.0、cafe、JBuilder . 支持 1998.12 JDK1.2 (Java 2 SDK v1.2 Standard Edition) 2009. JDK 1
2、.6 2011. JDK 1.7,2, ,Java資源網(wǎng)址,3,Simple : 易學(xué);自動內(nèi)存管理;簡化重載;去掉指針及C+中一些不是絕對必要的功能 object-oriented: 純面向?qū)ο笳Z言,程序代碼以類的形式組織,由類來定義對象的各種狀態(tài)和行為 Distributed : 豐富的網(wǎng)絡(luò)編程功能-輕松處理TCP/IP ;通過URL訪問遠(yuǎn)地資源;字節(jié)碼可來自網(wǎng)絡(luò),1.2 Java語言特點(diǎn),4,Interpreted: Java是解釋型的,但Java通過預(yù)先將源代碼編譯為接近于機(jī)器指令的字節(jié)碼,有效地克服了傳統(tǒng)解釋型語言的性能瓶頸,同時又保持了解釋型語言的可移植性;Java解釋器能直接在任
3、何機(jī)器上執(zhí)行Java字節(jié)碼 Robust: 靜、動態(tài)檢查,排除出現(xiàn)錯誤的條件;異常處理機(jī)制,正確處理運(yùn)行時的錯誤;取消指針,保護(hù)內(nèi)存數(shù)據(jù)與程序;數(shù)據(jù)類型的匹配,數(shù)組下標(biāo)越界檢查;自動內(nèi)存管理,碎片收集,5,Secure: 用于網(wǎng)絡(luò)/分布式運(yùn)算環(huán)境,確保建立無病毒且不會被侵入的系統(tǒng);內(nèi)存分配及布局由Java運(yùn)行系統(tǒng)決定;字節(jié)碼加密傳輸,客戶端校驗(yàn) architecture-neutral: Java應(yīng)用程序能夠在網(wǎng)絡(luò)上任何地方執(zhí)行;字節(jié)代碼 - 平臺無關(guān)性;完全統(tǒng)一的語言版本 - 實(shí)現(xiàn)無關(guān)性;訪問底層操作系統(tǒng)功能的擴(kuò)展類庫 不依賴于具體系統(tǒng) Portable: 源于平臺無關(guān)性,且Java本身環(huán)境
4、的可移植性,6,high-performance: 字節(jié)碼- 目標(biāo)代碼;JIT(Just-In-Time)即時時編譯器 multi-threaded: 在語言級嵌入了對并發(fā)控制的功能 - 多線程控制,大大簡化了多線程應(yīng)用程序的開發(fā) Dynamic: 面向?qū)ο笤O(shè)計(jì)的延伸。JAVA的基本組成單元是類,而Java的類又是運(yùn)行時動態(tài)裝載的??梢栽诜植辑h(huán)境中動態(tài)地維護(hù)應(yīng)用程序和類庫的一致性。更能適應(yīng)時刻變化的環(huán)境。Java不會因程序庫的更新,而必須重新編譯程序,7,1.3 Java開發(fā)環(huán)境與工具,Java技術(shù)包括兩部分: Java程序設(shè)計(jì)語言 Java平臺。 Java 語言是一種廣泛使用的高水平的程序設(shè)
5、計(jì)語言,是一個有力的軟件平臺。這個語言平臺為軟件開發(fā)提供了一整套必備的工具和功能實(shí)現(xiàn),具體如下列的功能: 開發(fā)工具:提供編譯、運(yùn)行、監(jiān)視、調(diào)試和應(yīng)用程序文檔生成等開發(fā)工具。對于初學(xué)者,主要使用的工具有:編譯工具javac,運(yùn)行工具java, 文檔生成工具javadoc。,8,應(yīng)用程序接口API:API提供Java程序設(shè)計(jì)語言的核心功能。比如隊(duì)列,網(wǎng)絡(luò),安全,XML,數(shù)據(jù)庫訪問。核心API包含的內(nèi)容非常大,具體可查閱SDK文檔。 部署技術(shù):JDK提供了標(biāo)準(zhǔn)機(jī)制部署你的應(yīng)用程序給最終用戶,例如 Java Web Start 和 Java技術(shù)。 用戶界面工具箱:Swing 和 Java 2D too
6、lkits 用于創(chuàng)建傳統(tǒng)的圖形用戶界面(GUIs)。 其他功能綜合庫:包含如IDL, JDBC, JNDI, RMI, RMI-IIOP 等。,9,Java程序開發(fā)和運(yùn)行環(huán)境的組成:,10,Java程序設(shè)計(jì)語言是一種高級語言,它用我們熟悉的字詞、句等表述需要計(jì)算機(jī)為我們做的事情。大多數(shù)程序設(shè)計(jì)語言,都要經(jīng)過編譯或解釋以便能在計(jì)算機(jī)上運(yùn)行。 在Java程序設(shè)計(jì)語言中,所有源代碼寫在一個擴(kuò)展名是.java的純文本文件里。這些源文件通過Java編譯器(javac.exe)編譯成.class文件。.class文件不包含本地處理器的代碼,而包含Java虛擬機(jī)機(jī)器語言代碼,它是一種在Java平臺上被解釋器
7、解釋的平臺無關(guān)代碼,稱之為“字節(jié)碼”。,1.Java程序設(shè)計(jì)語言,11,Java執(zhí)行工具(java)用來運(yùn)行.class文件,它是一個解釋程序,又稱“Java虛擬機(jī)”,它負(fù)責(zé)解釋分解并執(zhí)行每個Java字節(jié)碼指令。下圖反映這個過程:,12,Java虛擬計(jì)算機(jī),可以認(rèn)為Java字節(jié)碼像機(jī)器指令碼一樣。任何Java解釋器,不論是開發(fā)工具的,還是運(yùn)行applet的web瀏覽器,都可認(rèn)為是運(yùn)行的Java虛擬計(jì)算機(jī)。Java虛擬機(jī)在許多不同的操作系統(tǒng)都是有效的,所以同樣的.class文件有能力運(yùn)行在Windows、Solaris、 Linux、MacOS等多種操作系統(tǒng)下,如圖:,13,2.Java平臺,平
8、臺是程序運(yùn)行的硬件和軟件環(huán)境。我們已經(jīng)了解的一些流行平臺像Windows、Linux、Solaris和MacOS等。多數(shù)平臺被描述成操作系統(tǒng)與硬件的復(fù)合體。Java平臺不同于其它平臺,它是一個純軟件平臺,在其它硬件基礎(chǔ)平臺上運(yùn)行,如下圖:。,14,Java平臺有兩個部分: Java虛擬機(jī)(Java VM) Java應(yīng)用程序接口(Java API) Java虛擬機(jī)是Java平臺的基礎(chǔ),是在各種不同的硬件基礎(chǔ)平臺上的接入口。Java字節(jié)碼程序就是由它解釋并執(zhí)行,同時提供程序的運(yùn)行環(huán)境。 Java API是一個巨大的,提供許多有用功能的,軟件組成的集合體。Java API被組合在庫中,由相關(guān)的類和接
9、口構(gòu)成,這些庫稱做“包”。下圖表示運(yùn)行在Java平臺上的程序。圖中顯示,Java API和虛擬機(jī)把程序與硬件隔離開,Java程序通過API在VM上運(yùn)行。,15,16,J2 SDK,JRE,JVM,JVM plus all APIs, compilers ,tools, and documentation (what you need in order to write java technology programs).,JVM plus basic APIs (what you need to distribute to people who will run your Java progr
10、ams),17,3 Java術(shù)語,JVM java虛擬機(jī) JVM將 java 字節(jié)碼程序翻譯成機(jī)器語言。然后由計(jì)算機(jī)執(zhí)行。 JRE java 運(yùn)行環(huán)境 JRE 是由JVM 和 java platform 核心類以及相關(guān)支撐文件組成。 API Application programming interface. API 是rules(syntax) :在java技術(shù)中如何編程。 API包括數(shù)百個類公司預(yù)先編好的代碼,你可以在編程中充分利用它們的功能。,18,JDK java developers kit (java開發(fā)工具包) JDK 包含JVM和其他工具,以及所有的API和相關(guān)的文件。 JDK
11、 是java 技術(shù)的舊名(1999年11月以前采用), JDK1.1 是最后版本。 Java 2 Java 2 Platform, J2 SDK java技術(shù)的新名稱。 SDK Software Development Kit,19,4.Java虛擬機(jī),JVM提供以下定義: 指令集(Bytecodes 是JVM的機(jī)器指令)。 寄存器組 類文件格式 棧 垃圾回收“堆”(實(shí)現(xiàn)內(nèi)存的動態(tài)分配和自動回收) 內(nèi)存區(qū)域,Java程序執(zhí)行時,首先虛擬機(jī)對要執(zhí)行的class文件裝載,然后對字節(jié)碼進(jìn)行驗(yàn)證,最后用解釋器對字節(jié)碼解釋執(zhí)行,下圖是jvm的邏輯構(gòu)造。,20,類裝配器,字節(jié)碼驗(yàn)證器,解釋器,本地計(jì)算機(jī)系
12、統(tǒng),代碼生成器 JIT code generator,Xxx.class,21,加載代碼 類裝配器 加載程序運(yùn)行所需要的所有的類。類裝配器將本地文件系統(tǒng)的類的名字空間與從網(wǎng)絡(luò)資源來的類的名字空間分開。這樣就限制了特洛伊木馬程序,因?yàn)楸镜仡惪偸鞘紫燃虞d。 一旦所有的類被加載,可執(zhí)行程序的內(nèi)存布局就被確定了。內(nèi)存地址被分配給符號引用表,查找表被建立。由于內(nèi)存的布局出現(xiàn)在運(yùn)行時刻,防止了對于代碼域的未授權(quán)的訪問。,22,驗(yàn)證代碼 字節(jié)碼驗(yàn)證器 java代碼在你的機(jī)器上執(zhí)行前要經(jīng)過幾個測試。字節(jié)碼驗(yàn)證器測試代碼段的格式,檢查代碼段是否有非法代碼(偽造指針,對象上的非法存取,試圖改變對象類型等)。 所有
13、網(wǎng)絡(luò)來的類文件都要經(jīng)過字節(jié)碼驗(yàn)證。 執(zhí)行代碼 解釋器,23,5.Java開發(fā)工具,Java開發(fā)工具是用于編寫編寫和生成Java程序。對于現(xiàn)有的計(jì)算機(jī)平臺,必須安裝Java開發(fā)工具箱,即Java Development Kit,簡稱“JDK”,才能夠運(yùn)行和開發(fā)Java程序 。JDK由Sun公司提供,其安裝包可以從Sun公司的Java網(wǎng)站下載獲得,網(wǎng)站地址: 。 注意,Sun公司針對不同的平臺提供了各自不同的安裝包,下載時根據(jù)需要選擇下載。 JDK僅為程序開發(fā)者提供了一個基本的Java程序編寫環(huán)境,對于那些大型的復(fù)雜的Java程序,需要一種綜合集成的大型開發(fā)工具。,24,1.4 建立Java平臺和
14、開發(fā)環(huán)境,1.建立Java平臺,Java平臺的建立只需安裝JDK或JRE就可以完成。JRE是Java運(yùn)行環(huán)境(Java Runtime Environment)縮寫,如果僅僅用來運(yùn)行Java程序,僅安裝JRE就可以了。如果需要開發(fā)和運(yùn)行Java程序,就必須安裝JDK。 第一步:下載JDK。 通常到sun的Java網(wǎng)站去下載JDK的安裝包程序,當(dāng)然也可以從別的地方獲得。JDK安裝程序的文件名不同的版本可能有差異,這里以JDK1.6.0_16為例,它的安裝包程序文件名是 jdk-6u16-windows-i586.exe。,25,JDK安裝程序,將文件下載到你的計(jì)算機(jī)某個文件夾,比如“C:temp
15、”,見下圖。,26,第二步:運(yùn)行JDK安裝程序。 與執(zhí)行其他程序一樣,用鼠標(biāo)雙擊剛才下載的JDK安裝程序,開始安裝JDK。在安裝過程中通常不用人為干預(yù),安裝程序會自動安裝,當(dāng)出現(xiàn)提示時只要用鼠標(biāo)點(diǎn)擊“下一步”或“Next”按鈕即可。當(dāng)安裝成功結(jié)束后,在計(jì)算機(jī)操作系統(tǒng)所在的磁盤上看到存放Java系統(tǒng)的文件夾,默認(rèn)安裝目錄是: C:Program FilesJavajdk1.6.0_16 下圖顯示執(zhí)行jdk-6u16-windows-i586.exe后JDK的安裝目錄 。,27,JDK安裝目錄,28,在JDK安裝目錄中包含有: 開發(fā)工具:(bin)指工具和實(shí)用程序,可幫助您開發(fā)、執(zhí)行、調(diào)試和保存以
16、 Java編程語言編寫的程序。Java用于運(yùn)行Java程序,Javac用來把Java源程序(.java)編譯成能由Java解釋執(zhí)行字節(jié)碼程序(.class)。 運(yùn)行時環(huán)境:(jre)由 JDK 使用的 Java Runtime Environment (JRETM) 的實(shí)現(xiàn)。JRE 包括 JavaTM 虛擬機(jī) (JVMTM)、類庫以及其他支持執(zhí)行以 JavaTM 編程語言編寫的程序的文件。 附加庫:(lib開發(fā)工具所需的其他類庫和支持文件。,29,演示applet和應(yīng)用程序:(demo)JavaTM 平臺的編程示例(帶源代碼)。包括使用 Swing 和其他 Java 基類以及 Java平臺調(diào)試
17、器體系結(jié)構(gòu)的示例。 樣例代碼:(sample)某些 Java API 的編程樣例(帶源代碼)。 C頭文件:(include)支持使用Java本機(jī)界面、JVMTM 工具界面以及 Java平臺的其他功能進(jìn)行本機(jī)代碼編程的頭文件。 源代碼:(src.zip)組成 Java 核心 API 的所有類的 JavaTM 編程語言源文件(即,java.*、javax.* 和某些 org.* 包的源文件,但不包括 com.sun.* 包的源文件)。,30,第三步:設(shè)置JDK環(huán)境變量。 通常JDK安裝完成后需要設(shè)置Java環(huán)境變量PATH和CLASSPATH。,(1).PATH變量 是操作系統(tǒng)用于查找可執(zhí)行文件的
18、目錄集,格式如下: PATH=;bin JDK安裝完成以后需要將開發(fā)工具的存放目錄加入到PATH變量中,使得在編譯或執(zhí)行Java程序時操作系統(tǒng)能夠找到編譯程序javac或解釋程序java。,31,(2).CLASSPATH變量 是Java編譯器編譯用于查找相關(guān)類或接口的目錄集,也是Java解釋器用于查找相關(guān)類或接口的目錄集,格式如下: CLASSPATH=或;. 這里由每個jar文件及存放它的目錄名組成,例如 D:Program FilesJavajdk1.6.0_16libdt.jar 多個路徑名之間用“;”分隔。,32,在Windows系統(tǒng)下設(shè)置環(huán)境變量可以從控制面板的系統(tǒng)設(shè)置添加。這里以
19、JDK1.6為例介紹環(huán)境變量的設(shè)置過程,假設(shè)JDK安裝的安裝路徑是 C:Program FilesJavajdk1.6.0_16,在控制面板中打開“系統(tǒng)”,選擇“高級”標(biāo)簽見圖.,然后“環(huán)境變量”按鈕打開環(huán)境設(shè)置窗口,見圖 .,33,在“系統(tǒng)變量”中選擇“Path”,然后安下“編輯”按鈕彈出“編輯系統(tǒng)變量”窗口。,34,在“變量值”中添加 ;C:Program FilesJavajdk1.6.0_16bin; 最后按下“確定”。,35,在“系統(tǒng)變量”中后按下“新建”按鈕。 在“變量名”中輸入CLASSPATH。在“變量值”中依次輸入下列內(nèi)容 C:Program FilesJavajdk1.6.
20、0_16jrelibrt.jar; C:Program FilesJavajdk1.6.0_16libdt.jar; C:Program FilesJavajdk1.6.0_16libtools.jar; (省略) 按下“確定”。,36,Java平臺建立(即安裝JDK)完成后就可以運(yùn)行或開發(fā)Java程序了。JDK提供了基本的Java開發(fā)工具,這些工具放在JDK安裝目錄下的bin目錄。但是,對于復(fù)雜大型的Java程序是不能滿足要求,需要專門的集成開發(fā)工具。下面分別介紹JDK提供主要工具軟件,并對目前常用的集成開發(fā)工具做簡單介紹。,(1)JDK開發(fā)工具,JDK開發(fā)工具包括工具和實(shí)用程序,可幫助開發(fā)
21、、執(zhí)行、調(diào)試和保存以 Java 編程語言編寫的程序。在這些程序中主要工具程序有:編譯工具Javac,解釋工具Java,文檔生成工具,Java平臺調(diào)試工具等。,2.建立Java開發(fā)環(huán)境,37,Javac Java編譯器,將Java源程序編譯成字節(jié)碼,生成class文件。在bin目錄下,文件名稱是javac.exe。命令格式:,javac 選項(xiàng) 源文件 類 argfiles 其中, 選 項(xiàng) 編譯參數(shù)。 源文件 一個或多個需要編譯的java源程序文件。 類 一個或多類。 argfiles 參數(shù)文件。,38,使用示例:編譯Java源程序HelloWorldApp.java。,39,Java Java解
22、釋器,直接從類文件執(zhí)行Java應(yīng)用程序,即application。命令格式:,java 選項(xiàng) 類 參數(shù). java 選項(xiàng) -jar jar文件 參數(shù). javaw 選項(xiàng) 類 參數(shù). javaw 選項(xiàng) -jar jar文件 參數(shù). ,其中, 選項(xiàng) 運(yùn)行參數(shù)。 類 被調(diào)用的類的名稱。 -jar jar文件 被調(diào)用的jar文件名稱。 參數(shù) 傳送給main方法的參數(shù)串。,40,使用示例:執(zhí)行Java類HelloWorldApp.class。,41,(2)Java集成開發(fā)工具,集成開發(fā)環(huán)境(簡稱IDE及Integrated Development Environment的縮寫)是用于提供程序開發(fā)環(huán)境的應(yīng)
23、用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務(wù)套。所有具備這一特性的軟件或者軟件套(組)都可以叫做集成開發(fā)環(huán)境,可以獨(dú)立運(yùn)行,也可以和其它程序并用。JAVA的集成開發(fā)環(huán)境很多,比如 JCreator,NeBeans,Java Studio,JBuilder,Java Workshop,JDeveloper,Visual Age for java,Eclipse等等,這里簡單介紹JCreator、netbeans和eclipse。,42,JCeator 分為JCeator Le和JCeator Pro兩個版
24、本,JCreat Le為免費(fèi)版,而JCeator Pro要注冊。JCreat Le功能不及JCeator Pro。 JCreator Pro是一款適合于各個 Java 語言編程開發(fā)人員的IDE工具。它為使用者提供了大量強(qiáng)勁的功能,例如: 項(xiàng)目管理、工程模板、代碼完成、調(diào)試接口、高亮語法編輯、使用向?qū)б约巴耆勺远x的用戶界面。缺點(diǎn)是只能進(jìn)行簡單的開發(fā),不能進(jìn)行企業(yè)J2EE開發(fā)應(yīng)用。,43,NetBeans IDE NetBeans是一個全功能的開放源碼Java IDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署Java應(yīng)用,并將版本控制和XML編輯融入其眾多功能之中。NetBeans 可支持Jav
25、a 2平臺標(biāo)準(zhǔn)版(J2SE)應(yīng)用的創(chuàng)建、采用JSP和Servlet的2層Web應(yīng)用的創(chuàng)建,以及用于2層Web應(yīng)用的API及軟件的核心組的創(chuàng)建。此外,NetBeans 最新牒還預(yù)裝了兩個Web服務(wù)器,即Tomcat和GlassFish,從而免除了繁瑣的配置和安裝過程。所有這些都為Java開發(fā)人員創(chuàng)造了一個可擴(kuò)展的開放源多平臺的Java IDE,以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作,如Solaris、Linux、Windows或Macintosh。,44,2010年6月16日,Oracle正式發(fā)布NetBeans 6.9正式版,將擴(kuò)大對JavaFX 1.3和OSGi的支持。目前Netbean
26、s的最新版本是Netbeans 6.9.1 可以從官方網(wǎng)上下載安裝文件netbeans-6.9-ml-windows.exe,下載網(wǎng)址: / 。Netbeans的安裝分為兩步: 安裝JDK(如果已經(jīng)安裝了JDK可以跳過)。 安裝netbeans 6.9.1。運(yùn)行安裝文件即可。如果沒有特別的使用要求,安裝過程中出現(xiàn)提示時直接點(diǎn)擊【Next】或【ok】按鈕,直到安裝結(jié)束。,45,Eclipse,Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為C+、Python、PHP等其他語言的開發(fā)工具。Ec
27、lipse的本身只是一個框架平臺,眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。 Eclipse的運(yùn)行需要有Java的虛擬機(jī)存在,在編譯java的時候不需要額外的編譯器。自身就能對java源代碼進(jìn)行編譯。由于Eclipse是使用java編寫的,所以在跨平臺上做的很好,常用的平臺Eclipse都能運(yùn)行。,46,Eclipse最大的特點(diǎn)使用插件滿足使用者根據(jù)自己的需要對其進(jìn)行擴(kuò)展,且Eclipse源代碼進(jìn)行開放,使插件的數(shù)量不斷增長,其中不乏一些非常優(yōu)秀的插件。也使得Eclipse的功能大大增強(qiáng),使用Ecli
28、pse作為基礎(chǔ)來開發(fā)的軟件也很多。,47,Eclipse的安裝分為兩步: 安裝JDK(如果已經(jīng)安裝了JDK可以跳過)。 到下載eclipse,可以選擇: Download now: Eclipse SDK 3.2 , Windows (120 MB) 下載完成后,只需要將下載的壓縮文件eclipse-SDK-3.2-in32.zip解壓到指定位置,例如d:Eclipse即可完成安裝. 安裝完成后,eclipse文件夾中的目錄結(jié)構(gòu)如圖:,48,啟動eclipse,雙擊安裝目錄下的eclipse.exe文件,在啟動畫面消失后,屏幕將顯示一個對話框,提示選擇工作空間的目
29、錄位置,這個目錄用于存放用戶創(chuàng)建的項(xiàng)目文檔(你自己選一個地方),最后進(jìn)入Eclipse的工作環(huán)境.如圖:,49,1.5 Java(源)程序結(jié)構(gòu),1.Java程序的構(gòu)成,Java 程序是由一個或多個編譯單元構(gòu)成,每個編譯單元都一個以.java為擴(kuò)展名的文本文件,又稱Java源程序文件。在java編譯單元(源程序)中包含幾種不同的元素,即:,package 語句 import 語句 類(class)聲明或接口(interface)聲明語句,50,一個程序可包括若干個類。 各類之間存在并列、繼承和包含關(guān)系。 這些類通常是在一起協(xié)同工作的。 編程只能在方法中。 類和方法中的語句包含在“”和“”之間。
30、每條語句以分號“;”結(jié)尾。 語句由表達(dá)式、變量、字面值和關(guān)鍵字構(gòu)成。 編譯后每個類產(chǎn)生一個 .class 文件。,51,package 包名稱; import 包名.類; class 類名1 域定義 方法名1() 方法名2() . ,52,Java示例程序:LotsHellosApplication . java,53,2.Java程序的幾種類型,Application(Java應(yīng)用程序) “Java應(yīng)用程序”是可以獨(dú)立運(yùn)行的Java程序。由Java解釋器控制執(zhí)行。 Applet(Java小程序) “Java小程序”不能獨(dú)立運(yùn)行,而是被嵌入到Web頁中。由Java兼容瀏覽器控制執(zhí)行。,54,S
31、erverlets Java技術(shù)對CGI 編程的解決方案。 運(yùn)行于Web server上的、作為來自于Web browser 或其他HTTP client端的請求 和 在 server上的數(shù)據(jù)庫及其他應(yīng)用程序之間的中間層程序。 Serverlets的工作是: 讀入用戶發(fā)來的數(shù)據(jù)。 找出隱含在HTTP請求中的其他請求信息。 產(chǎn)生結(jié)果。 格式化結(jié)果(網(wǎng)頁)。 設(shè)置HTTP response參數(shù)。 將文檔返回給客戶端。,55,3.程序類型與用戶界面,56,4. Application程序基本結(jié)構(gòu),public class HelloApplication public static void mai
32、n(String args) System.out.println(Hello, Java world! ); ,由一個或多個“類”組成。 其中必須有一個“類”定義了main() 方法,該方法是自動執(zhí)行的類方法,是Java應(yīng)用運(yùn)行的起始點(diǎn)。而這個類也就稱之為“主類”。 Java程序源文件名要與主類名同名(包括大小寫一個類產(chǎn)生一個.class文件。例如HelloApplication.java。,57,Application程序上機(jī)過程,編輯源程序 Edit HelloApplication.java (dos命令) 使用notepad編輯器編輯java源程序更為方便。 編譯 javac jav
33、ac HelloApplication.java 產(chǎn)生HelloApplication.class 文件 解釋執(zhí)行 java java HelloApplication (隱含.class文件),58,5.applet 小程序,import java.awt.Graphics; import java.applet.Applet; class HelloApplet extends java.applet.Applet public void paint(Graphics g) g.drawString(“Hello, Java World!”, 10,20); ,源程序文件名:HelloAp
34、plet.java,59,編譯java小程序 javac HelloApplet.java 使用文本編輯建立test.html文件,嵌入HelloApplet.class 瀏覽html文件 使用appletviewer appletviewer test.html 使用常規(guī)的瀏覽器,applet 小程序,60,Application:,D: edit HelloApplication.java D: javac HelloApplication.java D: java HelloApplication Hello, Java World!,1.6 運(yùn)行你的第一個java程序,1.利用JDK實(shí)
35、用工具編寫、運(yùn)行程序,1.進(jìn)入到“命令提示符”。 2.按下圖所示順序操作。,61,Applet:,D: edit HelloApplet.java D: javac HelloApplet.java D: edit test.html D: appletviewer test.html,62,2.利用集成環(huán)境編寫、運(yùn)行程序,(略),63,64,第二章、Java語言基礎(chǔ),基礎(chǔ)語言 ( Java程序的構(gòu)成 ),65,2.1、Java程序的構(gòu)成,java 程序是由一個或多個編譯單元構(gòu)成,每個編譯單元都一個以.java為擴(kuò)展名的文本文件,又稱Java源程序文件。,1.Java程序的組成,主程序(類)
36、源程序(類)1 源程序(類)2 源程序(類)3 源程序(類)n,Java 程序,例如 名為CodePointIM的Java程序由三個源文件組成: CodePointIM.java CodePointInputMethod.java CodePointInputMethodDescriptor.java 因?yàn)橹黝惖拿Q是CodePointIM,所以可以此名做為程序的名稱。,CodePointIM,CodePointIM.java CodePointInputMethod.java CodePointInputMethodDescriptor.java,66,2.Java源程序的組成,packag
37、e 包名稱; import 包名稱.類名稱; 類或接口聲明語句,在java編譯單元(源程序)中包含幾種不同的元素,即:,package 語句是可選的。如果有該語句編譯器在生成類 文件時會將編譯生成的“.class”文件存放到由“包名稱”指定的包中。每個源程序中只能有一條package語句,而且必須在第一條語句。 import 語句引入由“類名稱”指定的其他類。一個源程序中可以有多條import語句。,67,一個程序可包括若干個類,但由 public 修飾的類只能有一個。 各類之間存在并列、繼承和包含關(guān)系。 這些類通常是在一起協(xié)同工作的。 編程只能在方法中。 類和方法中的語句包含在“”和“”之間
38、。 每條語句以分號“;”結(jié)尾。 語句由表達(dá)式、變量、字面值和關(guān)鍵字構(gòu)成。 編譯后每個類產(chǎn)生一個 .class 文件。,類或接口聲明語句是Java原程序的主體,編寫程序的過程實(shí)際上就是聲明類或接口的過程。,68,package 包名稱; import 包名.類; public class 類名1 類的成員變量(或域); 方法名(參數(shù)) 局部變量和語句; ,下圖就是Java源程序的一般形式。,69,例 程序Line.java,package chapt02.shape; import java.awt.Graphics; public class Line protected int x1,y1;
39、 protected int x2,y2; public Line(double x1,double y1,double x2,double y2) this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; public void draw(Graphics g) g.drawLine(x1,y1,x2,y2); ,包名稱,引入的類名稱,類名稱,Line方法,draw方法,方法參數(shù),70,3.Java源程序文件的命名,按Java語言規(guī)定,源程序的文件名必須與由 public 修飾的類的類名稱相同。例如下面的程序:,public class
40、TestFx extends Applet private Fx fx; public void init() fx = new Fx(this.getSize().height); public void paint(Graphics g) for(int x=0;xgetSize().width;x+) g.drawLine(x,(int)fx.getFx(x),x+1,(int)fx.getFx(x+1); ,源程序的文件名稱是:TestFx.java。,71,4.Java應(yīng)用程序(Application)的組成,Java應(yīng)用程序是Java程序中的一種。這類程序具有下面的一些特征: 程序
41、可以獨(dú)立運(yùn)行,直接從操作系統(tǒng)啟動。 多數(shù)應(yīng)用程序都具有圖形用戶界面,即GUI界面。 每個程序都具有完整的功能和用途,可以獨(dú)立完成具體的事務(wù),有明確的應(yīng)用領(lǐng)域。 程序可能很簡單,也可能非常復(fù)雜和龐大。,72,由一個或多個“類”組成。 其中必須有一個“類”定義了main() 方法,該方法是自動執(zhí)行的類方法,是Java應(yīng)用運(yùn)行的起始點(diǎn)。而這個類也就稱之為“主類”。 Java程序源文件名要與主類名同名(包括大小寫一個類產(chǎn)生一個.class文件。例如HelloApplication.java。,Java應(yīng)用程序在程序構(gòu)成上具有下列這些特征:,例如下面的程序就是一個Java應(yīng)用程序。這個程序完成一個數(shù)學(xué)函
42、數(shù)的計(jì)算。,73,例 Fx程序計(jì)算數(shù)學(xué)函數(shù)。源程序文件名:Fx.java。,public class Fx public int fx(int x) if(x213) return 1; else return 0; public static void main(String args) Fx y = new Fx(); System.out.println( f(x)=+y.fx(267); ,74,關(guān)于main()方法,main()方法是由解釋器或Java虛擬機(jī)自動執(zhí)行的方法,是Java應(yīng)用運(yùn)行的起始點(diǎn)。 含有main()方法的類稱之為“主類”。當(dāng)有多個類在同一個源程序時main()方法
43、應(yīng)放在由public修飾的類。 main()方法的方法聲明(格式)必須是: 修飾符public和static沒有固定的順序,但習(xí)慣上是 public在前static在后。 參數(shù)的類型必須是String ,參數(shù)名稱可以用任何名字,但習(xí)慣上使用args或argv。,public static void main(String args),75,5.Java小程序(Applet)的組成,Java小程序是不能獨(dú)立運(yùn)行,是被嵌入到Web頁中,由Java兼容瀏覽器控制執(zhí)行。在程序結(jié)構(gòu)上它沒有像應(yīng)用程序那樣的main()方法,因此它的程序具有如下特征:,由一個或多個“類”組成。 由Java兼容瀏覽器控制執(zhí)行
44、的類必須是Applet類的子類,它是Java小程序運(yùn)行的起始點(diǎn),也就小程序的“主類”。Java程序源文件名要與主類名同名。 在類中根據(jù)需要覆蓋init()、start()、stop()、destroy()和paint()等方法。 小程序執(zhí)行由html文件中的實(shí)現(xiàn)。,76,Applet程序的基本結(jié)構(gòu),import java.awt.*; import java.applet.*; public class 類名 extends Applet public void init() public void stop() public void start() public void destroy(
45、) public void paint(Graphics g) ,77,Applet程序的執(zhí)行Html標(biāo)記, ,78,Applet程序示例程序,import java.awt.*; import java.applet.*; public class HelloApplet extends Applet public void paint(Graphics g) g.drawString(JavaApplet 歡迎你!, 50, 60 ); ,這個程序只需簡單地顯示一個字符串,沒有復(fù)雜要求,更沒有需要初始化的變量或操作,因此只覆蓋了paint方法。,79,80,第二章、Java語言基礎(chǔ),基礎(chǔ)語
46、言 ( 數(shù)據(jù)類型、字面量、變量 ),81,2.2、數(shù)據(jù)類型、字面量、變量,1.數(shù)據(jù)類型,Java數(shù)據(jù)類型有: 原始數(shù)據(jù)類型(Primitive Data Types ) 引用類型(reference type ) Java原始數(shù)據(jù)類型又稱基本數(shù)據(jù)類型,它說明了在程序中所能表示的基礎(chǔ)數(shù)據(jù)的種類,通常有8種。 引用類型包括類、接口等,具體內(nèi)容將在后面章節(jié)介紹。,82,boolean 布爾型,只有真(true)與假(false) byte 8位符號整數(shù),取值范圍-128+127 short 16位符號整數(shù),取值范圍-32768+32767 char 16位字符,Unicode字符集,字符碼數(shù)值范圍
47、0(u0000 )65535(uffff)。 int 32位符號整數(shù),取值范圍: -2147483648+2147483647 long 64位符號整數(shù),取值范圍: -9223372036854775808+9223372036854775807 float 32位單精度浮點(diǎn)數(shù),使用IEEE754標(biāo)準(zhǔn)。 double 64位雙精度浮點(diǎn)數(shù),使用IEEE754標(biāo)準(zhǔn)。,Java原始(基本)數(shù)據(jù)類型,Java原始數(shù)據(jù)類型變量的默認(rèn)值,83,Java原始數(shù)據(jù)類型占用的位數(shù),84,85,符號是構(gòu)成程序的基本單位,一個程序?qū)嶋H上是用特定符號描述的計(jì)算機(jī)命令集合,這些命令確定存儲器分配,完成各種計(jì)算和控制。j
48、ava采用Unicode字符集,使他可以更好的提供多語言支持。java符號可分為如下5種:,標(biāo)識符(Identifiers) 指構(gòu)成java程序代碼中變量、類、方法的名字的符號串。 關(guān)鍵字(Keyword) java語言使用的專用符號。 字面值(Literals) 表示一些具有固定值的常數(shù)。 運(yùn)算符(Operands) 表示算術(shù)、邏輯運(yùn)算的符號。 分隔符(Separator) 空格、值表符、回車換行符等。,2.Java符號,86,(1)注釋 java語言可使用三種格式的注釋。,/注釋內(nèi)容 從/到行末的內(nèi)容被忽略 /*注釋內(nèi)容*/ 在/* 和 */之間的內(nèi)容 /*注釋內(nèi)容*/ 同上,/* (#)
49、Sample3_3.java 1.0 01/10/22程序計(jì)算一個梯形 */ public class Sample3_3 int L1,L2; /上下底邊 int H; /高 ,注釋,注釋,87,(2)標(biāo)識符 標(biāo)識符構(gòu)成java程序代碼中變量、類、方法和接口的名字,這些名字是唯一的。java語言所有標(biāo)識符是由字符組成的字符串,構(gòu)造標(biāo)識符遵循下面的規(guī)則:,標(biāo)識符必須以字母、下畫線或$符號為第一個字符。 后續(xù)字符可以是數(shù)字0-9,其他非保留字字符。 java語言中大小寫是有區(qū)別的。,例如, int ox,oy; String $name,_year; 都是正確的標(biāo)識符,在此表示變量名稱。,88,
50、(3)關(guān)鍵字 所謂關(guān)鍵字是指java語言使用的標(biāo)識符,又稱保留字。例如下面列出的幾個關(guān)鍵字。,89,字面值是源代碼固定值的表示。java中的字面值區(qū)分為不同的數(shù)據(jù)類型,通常有: 整型 實(shí)型 字符 布爾 字符串 空對象,3.字面值(常量),89,90,(1)整型字面值,有三種表示形式:,八進(jìn)制 :以0開頭只能出現(xiàn)數(shù)字07,例如 0126,0453等。,十六進(jìn)制:以0 x開頭的整型數(shù),可以包括數(shù)字09,字母af或AF,例如 0 x12AD,0 x9FFDBD等。,十進(jìn)制 :由第一個字符不為0的數(shù)字串組成,例如 234、122、657489等。,90,91,(2)浮點(diǎn)型 字面值,用十進(jìn)制表示,主要由
51、三部分組成:整數(shù)、小數(shù)點(diǎn)、小數(shù)部分、指數(shù)和類型后綴。,小數(shù)表示: 整數(shù).小數(shù) 指數(shù)表示: 整數(shù).小數(shù)E指數(shù) 整數(shù).小數(shù)e指數(shù),例如:4.0987 3.12E34 3.678E-12,用在小數(shù)后加后綴d或D,表示double型浮點(diǎn)數(shù);在小數(shù)后加后綴f或F,表示float型浮點(diǎn)數(shù)。 例如,2.0D、2.0d 是double型浮點(diǎn)數(shù); 2.0f、2.0F 是float型浮點(diǎn)數(shù)。,91,92,(3)布爾型字面值,有兩個值:true(真)、false(假)。 (4)字符型字面值,由單引號括起的字符。 例如 Q,P,天等。 Java采用Unicode字符集,因而每個字符占用16位,可表示065535之間的
52、字符碼。 轉(zhuǎn)義字符:,b 退格 單引號 t 水平制表符 反斜線 n 換行 f 表格符 r 回車 ” 雙引號,92,(5)空對象字面值,表示形式:null。 它常用來作為對象是否可用的 標(biāo)記。,(6)class字面值,表示形式:類型名稱 .class。例如: String.class Integer.class 等。,93,94,對象存儲它的狀態(tài)在域(Field)中,變量也是存儲程序中數(shù)據(jù)的,它們都是通過一個名字引用值。在Java語言中域(field)和變量(variable)都使用,因此會引起一些混亂,原因是它們通常具有相同的含義和用途。,4.變量(域),(1)變量命名: 是一個合法的標(biāo)識符,
53、它是字母、數(shù)字、下劃線或美元符“”的序列,Java對變量名區(qū)分大小寫,變量名不能以數(shù)字開頭 ,而且不能為保留字 。 合法的變量名如:myName、 value-1、 dollar等 。非法的變量名如: 2mail、room#、 class (保留字)等,變量名應(yīng)具有一定的含義,以增加程序的可讀性 。,94,95,(2) 變量類型: 可以為上面所說的數(shù)據(jù)類型中任意一種數(shù)據(jù)類型 。 (3) 變量的作用域: 聲明一個變量的同時也就指明了變量的作用域。java規(guī)定允許變量在任何代碼塊中聲明,一個代碼塊由大括號括起的代碼。按作用域來分,變量可以有下面幾種: 實(shí)例變量(Instance Variables
54、)即非靜態(tài)域(Non-Static Fields )。 類變量(Class Variables)即靜態(tài)域(Static Fields )。 局部變量(Local Variables )。 參數(shù)(Parameters)。,95,96,實(shí)例變量(Instance Variables): 非靜態(tài)域(Non-Static Fields),聲明時不用static修飾的域。對象存儲它的個體狀態(tài)在非靜態(tài)域中,非靜態(tài)域也被稱做“實(shí)例變量”,它們的值對于一個類的每個實(shí)例是唯一的。,實(shí)例變量,public class Circle static final MIN_RADIUS=1; protected int
55、m_radius; protected int m_ox,m_oy; public Color m_color; ,96,類變量(Class Variables): 類變量是聲明時用static修飾的域,不管類被實(shí)例化多少次(也就是創(chuàng)建多少個對象),類變量僅有一個,即類的多個實(shí)例(對象)共享類變量。,public class Circle static final MIN_RADIUS=1; protected int m_radius; protected int m_ox,m_oy; public Color m_color; ,實(shí)例變量,類變量,97,public class Cuboi
56、d public String toString() String msg=nCuboid 對象成員n length :+length; msg+=n width :+width+n high :+high; return msg; public static void main(String argc) Cuboid c1=new Cuboid(); System.out.println(c1.toString(); ,局部變量(Local Variables ) : 在方法中保存臨時狀態(tài)值的變量即局部變量。Java語言沒有專門的關(guān)鍵字指明一個局部變量,它聲明在方法開始符號“”和結(jié)束符號“”
57、之間。局部變量僅在聲明它的方法中有效,類中的其他方法是不能使用的。,局部變量,局部變量,98,參數(shù)(Parameters) : 是在方法中傳遞給方法數(shù)據(jù)的變量,它在方法參數(shù)表中聲明,它的作用域就是這個方法。 下面的程序中main方法有一個參數(shù)argc。,方法參數(shù),public class MemberVariable public static void main(String argc) MemberVariable mv=new MemberVariable(); mv.printValue(); ,99,100,成員變量范圍,方法參數(shù)范圍,局部變量范圍,例外處理參數(shù)范圍,變量在類中位置,
58、100,在程序中使用變量時,必須明確提供變量的名稱和類型。變量名稱是一個合法的標(biāo)識符以字母開始的長度無限的Unicode字符序列。變量是Java程序中數(shù)據(jù)的基本存儲單元,變量通過一個名字引用值,即包含在變量中的數(shù)據(jù)。變量類型決定了它保存的值以及可以實(shí)現(xiàn)的操作。使用變量前必須聲明變量,它的聲明語法格式:,(4) 變量聲明:,變量類型 變量名稱=初始值 , ;,“變量類型” 即變量的數(shù)據(jù)類型,變量的數(shù)據(jù)類型可以是基本類型,也可以是類、接口等復(fù)雜的引用型。,101,“變量名稱”聲明的變量的名稱,如果聲明多個變量,每個變量間用“,”隔開。 “=初始值” 如果在定義變量時需要給變量確定數(shù)值,可以用“=”為變量賦值。,例如 boolean startFlag = false; boolean opened , runnable; byte c1 , c2 = A , c3 = n; short size; int width , length; long scroe; float year , size = 0.45f; double height , sum ,;,102,public class MaxVariables public static void main(String args
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑供暖系統(tǒng)智能化-洞察及研究
- 交通行為智能識別-第1篇-洞察及研究
- 哈考網(wǎng)蕭紅中學(xué)數(shù)學(xué)試卷
- 哈市中考模擬數(shù)學(xué)試卷
- 公共衛(wèi)生政策效果-洞察及研究
- 合肥強(qiáng)基中考數(shù)學(xué)試卷
- 哈市八年級下數(shù)學(xué)試卷
- 少兒財(cái)商培訓(xùn)
- 廣州市期末數(shù)學(xué)試卷
- 邯鄲三升四數(shù)學(xué)試卷
- 2025年北京市高考語文試卷(含答案)
- 2025年高考湖北卷物理真題(解析版)
- 專題:任務(wù)型閱讀30篇 中考英語高分提升之最 新題速遞第三輯(答案+解析)
- 中國隱身材料行業(yè)發(fā)展分析及發(fā)展前景與投資研究報(bào)告2025-2028版
- 2025年浙江省中考數(shù)學(xué)試卷真題(含官方標(biāo)準(zhǔn)答案及解析)
- 譯林版(2024)七年級下冊英語期末復(fù)習(xí)綜合練習(xí)試卷(含答案)
- 汽車構(gòu)造試題及答案
- 2025至2030中國摩擦材料及制動產(chǎn)品行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報(bào)告
- 11人制足球競賽規(guī)則
- 放射職業(yè)衛(wèi)生培訓(xùn)課件
- 小學(xué)數(shù)學(xué)教學(xué)中如何培養(yǎng)學(xué)生數(shù)感
評論
0/150
提交評論