版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《Java程序設(shè)計(jì)教程》張永強(qiáng)、張默華主編清華大學(xué)出版社ISBN:978-7-302-23720-4主講:李妍琰E-mail:第一章JAVA概述本講要點(diǎn)課程介紹什么是Java?我們的學(xué)習(xí)目標(biāo)學(xué)習(xí)方法指導(dǎo)學(xué)習(xí)資料推薦Java語言概述Java語言的技術(shù)簡介JDK安裝和配置Java程序的類型Java工作原理什么是Java?什么是Java?Java是一種解釋型的、面向?qū)ο蟮木幊陶Z言。一種軟件平臺(tái)平臺(tái)是程序運(yùn)行的硬件或軟件環(huán)境,Java平臺(tái)與大多數(shù)其它平臺(tái)不同,是基于其它軟件或硬件的純軟件平臺(tái)。JVM:Java虛擬機(jī),是Java平臺(tái)的根底JavaAPI:Java應(yīng)用程序接口,JavaAPI是軟件組件的集合,它們提供了很多有用的功能,如圖形用戶界面〔GUI〕。學(xué)習(xí)目標(biāo)近期目標(biāo)在校期間,掌握J(rèn)avaWeb應(yīng)用本學(xué)期目標(biāo)本學(xué)期,Java語法、J2se平臺(tái)根底、面向?qū)ο缶幊趟枷牒头椒?,培養(yǎng)自學(xué)能力。學(xué)習(xí)方法指導(dǎo)奠定Java語法根底學(xué)習(xí)Java的第一步是用Java語言來編寫程序,學(xué)習(xí)Java語言的第一步,就是熟悉其語法的使用。注意思考和總結(jié)在學(xué)習(xí)的過程中,最好能夠了解Java的底層機(jī)制,而不是僅僅停留在表層,不是抄書上的例子運(yùn)行出結(jié)果就可以。即便對(duì)一個(gè)簡單的例子也要有耐心去琢磨、調(diào)試、改動(dòng)。動(dòng)手寫代碼在學(xué)習(xí)的過程中一定要?jiǎng)邮肿?、寫代碼,而不是抱一本書看看就行。很多東西和體會(huì)必須自己動(dòng)手才能真正屬于自己。在學(xué)到一定階段后,試用學(xué)過的東西做些什么。培養(yǎng)自學(xué)能力JavaAPI文檔英文地址:中文:網(wǎng)上搜索下載充分利用網(wǎng)絡(luò)學(xué)習(xí)資源使用搜索引擎參加論壇參與討論學(xué)習(xí)資料推薦參考書〔1〕《Java學(xué)習(xí)筆記》,良葛格著,清華大學(xué)出版社,2006.8?!?〕《Java編程根底、應(yīng)用與實(shí)例》,[韓]徐明浩著武傳海譯,人民郵電出版社,2005.10。〔3〕《Java編程思想》第3版,〔美〕??藸枴睧ckel,B.〕著陳昊鵬等譯,機(jī)械工業(yè)出版社,2005.5?!?〕《Java就業(yè)培訓(xùn)教程》,張孝祥編著,清華大學(xué)出版社,2003.9。網(wǎng)絡(luò)學(xué)習(xí)資源〔1〕Java中國開發(fā)網(wǎng)--:///〔2〕中文JAVA技術(shù)網(wǎng)--/〔3〕天新網(wǎng)-軟件開發(fā)-Java開發(fā)〔4〕視頻教程《Java無難事視頻教程》孫鑫:///〔5〕ChinaJavaWorld技術(shù)論壇://〔6〕賽迪網(wǎng)技術(shù)社區(qū)〔7〕SUN中國技術(shù)社區(qū):///1.1 Java的技術(shù)簡介1.Java的歷史1991年,美國SunMicrosystems公司成立一個(gè)開發(fā)小組,最初的目的是為電視機(jī)頂盒,電冰箱等家用消費(fèi)電子產(chǎn)品開發(fā)一套軟件,通過這套軟件,可以把電子郵件發(fā)給這些家用電器,從而對(duì)它們進(jìn)行控制。這個(gè)工程被命名為Green,由JamesGosling領(lǐng)導(dǎo)。該小組開始采用的編程語言是C++,但由于C++過于復(fù)雜,平安性差,需要更多內(nèi)存等缺點(diǎn),所以該小組在C++的根底之上,創(chuàng)立了一種新的語言,起初叫做C++++--,后來命名為Oak〔橡樹〕。但是由Oak開發(fā)的這套系統(tǒng)在投標(biāo)中以失敗告終,并沒有轉(zhuǎn)換成Sun公司的產(chǎn)品,所以沒有為Sun公司帶來什么收益——Oak面臨夭折。1994年,隨著Internet的迅速開展,為Oak帶來了絕處逢生的時(shí)機(jī),原工程組成員使用Oak編寫了一個(gè)叫做WebRunner的瀏覽器軟件,并產(chǎn)生了一個(gè)叫做Applet的技術(shù),這是一個(gè)將Oak開發(fā)的程序嵌入到網(wǎng)頁中進(jìn)行執(zhí)行的技術(shù),從而使互聯(lián)網(wǎng)從靜態(tài)網(wǎng)頁過渡到動(dòng)態(tài)網(wǎng)頁——Oak獲得重生。1995年1月,Oak被重新賦予一個(gè)更響亮的名字——Java,WebRunner瀏覽器也被重新命名為HotJava。3月,Sun公司將Java和HotJava在互聯(lián)網(wǎng)上免費(fèi)發(fā)布——Java誕生。Java之父——JamesGosling詹姆斯·戈斯林1955年出生于加拿大,是一位計(jì)算機(jī)編程天才。在卡內(nèi)基·梅隆大學(xué)攻讀計(jì)算機(jī)博士學(xué)位時(shí),他編寫了多處理器版本的Unix操作系統(tǒng)。1984年-2010年間,供職于Sun公司。在2010年甲骨文收購Sun不久后離職,并在2011年初參加谷歌。2011年8月離開谷歌,參加開展海洋探測(cè)業(yè)務(wù)的機(jī)器人制造公司LiquidRobotics,任首席軟件架構(gòu)師。2Java組成3JAVA平臺(tái)的擴(kuò)展三個(gè)版本(1999.6)J2SE:Core/DesktopJ2EE:Enterprise/ServerJ2ME:Mobile/WirelessJAVA語言的特點(diǎn)簡單、面向?qū)ο蟆⑴c平臺(tái)無關(guān)……簡單Java語言是建立在C++語言之上,風(fēng)格類似于C++,易上手;拋棄了C++中容易引發(fā)程序錯(cuò)誤的一些特性,如指針、結(jié)構(gòu)、枚舉以及內(nèi)存管理等;Java提供了豐富的類庫,可以幫助我們很方便的開發(fā)Java程序。面向?qū)ο竺嫦驅(qū)ο罂梢哉f是Java最重要的特性,所以它支持繼承、重載、多態(tài)等面向?qū)ο蟮奶匦浴ava語言的設(shè)計(jì)是完全面向?qū)ο蟮?,它不支持類似C語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。分布式程序設(shè)計(jì)語言面向網(wǎng)絡(luò)的語言,編寫網(wǎng)絡(luò)應(yīng)用程序與平臺(tái)無關(guān)、可移植性“一次寫入,到處運(yùn)行”健壯、平安、高性能、多線程、動(dòng)態(tài)性等等4Java的應(yīng)用范圍應(yīng)用:Java是當(dāng)今最流行的軟件開發(fā)語言之一,Sun推出了Java2&J2EE使Java具有更廣泛的用途,適用于各種應(yīng)用開發(fā),尤其是網(wǎng)絡(luò)應(yīng)用,網(wǎng)絡(luò)效勞,嵌入式系統(tǒng)等。據(jù)有關(guān)單位調(diào)查顯示,從開發(fā)領(lǐng)域的分布情況上看Web開發(fā)占了一半以上,為57.9%,JavaME移動(dòng)或嵌入式應(yīng)用占15%,C/S應(yīng)用占11.7%,系統(tǒng)編程占15.4%。近30%的開發(fā)者用Java從事C/S應(yīng)用或系統(tǒng)級(jí)應(yīng)用的開發(fā)。具體的企業(yè)信息化,特別在企業(yè)級(jí)應(yīng)用,如通信、金融電子政務(wù)及辦公自動(dòng)化嵌入式設(shè)備及消費(fèi)類電子產(chǎn)品太空領(lǐng)域應(yīng)用范圍5.JAVA平臺(tái)的新開展JavaSE〔JavaPlatform,StandardEdition〕。JavaSE以前稱為J2SE。它允許開發(fā)和部署在桌面、效勞器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java應(yīng)用程序。JavaSE包含了支持JavaWeb效勞開發(fā)的類,并為JavaPlatform,EnterpriseEdition〔JavaEE〕提供根底。JavaEE〔JavaPlatform,EnterpriseEdition〕。這個(gè)版本以前稱為J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且平安的效勞器端Java應(yīng)用程序。JavaEE是在JavaSE的根底上構(gòu)建的,它提供Web效勞、組件模型、管理和通信API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向效勞體系結(jié)構(gòu)〔service-orientedarchitecture,SOA〕和Web2.0應(yīng)用程序。JavaME〔JavaPlatform,MicroEdition〕。這個(gè)版本以前稱為J2ME。JavaME為在移動(dòng)設(shè)備和嵌入式設(shè)備〔比方、PDA、電視機(jī)頂盒和打印機(jī)〕上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。JavaME包括靈活的用戶界面、健壯的平安模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持?;贘avaME標(biāo)準(zhǔn)的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。1.2JDK的安裝與配置Java開發(fā)工具包(JavaDevelopmentKit)簡稱JDK,它是用于構(gòu)建在Java平臺(tái)上發(fā)布的應(yīng)用程序、Applet和組件的開發(fā)環(huán)境,也是一切Java應(yīng)用程序的根底所有的Java應(yīng)用程序都是構(gòu)建在這個(gè)JDK之上,它包括了一個(gè)提供Java程序運(yùn)行的虛擬機(jī)和一些運(yùn)行支持的類庫文件,以及一些工具程序JDK版本歷史JDK版本發(fā)布日期版本說明JDK1.01995-5正式對(duì)外發(fā)布,直到1996年1月形成一個(gè)完整的版本。包括標(biāo)準(zhǔn)的I/O庫、網(wǎng)絡(luò)API、Applet、文件I/O及基本的窗口庫JDK1.11997-2內(nèi)部類、新的事件處理模型、RMI、JavaBean、JDBC、串行化、國際化、性能改進(jìn)JDK1.21998-12浮點(diǎn)運(yùn)算改進(jìn),Swing支持、集合、Java2D、可訪問性、引用對(duì)象及性能改進(jìn)JDK1.32000-5稱為Kestrel。CORBA兼容性、Java音頻支持、JNDI及性能改進(jìn)JDK1.42001-12稱為Merlin。斷言支持、64位空間、新的I/O庫、模式匹配、JavawebStart、IPv6、XML進(jìn)一步性能改進(jìn)等JDK1.5(5.0)2003-7稱為Tiger。通用性(代碼模塊)、某些運(yùn)算符重載等JDK1.6(6.0)2006稱為Mustang。沒有新的語言特征,是一個(gè)以穩(wěn)定、提高為目的的版本。JDK1.7(7.0)2011新的語言特性、性能的改進(jìn)1.2Java程序運(yùn)行環(huán)境的安裝與配置第一步:下載JDKJava可以從Sun公司網(wǎng)站:///免費(fèi)下載(尋找適宜的版本)(jdk-6u18(21)-windows-i586se版.exe)JDK(JDK,JavaDevelopmentKit)包括Java編譯器(javac,例如:javacHelloWorld.java)Java解釋器(java,javaHelloWorld)文檔生成器(javadoc,Documentationgenerator)…第二步:安裝點(diǎn)擊jdk的可執(zhí)行程序,開始安裝JRE的安裝第三步:環(huán)境配置-設(shè)置操作系統(tǒng)環(huán)境變量JDK安裝目錄結(jié)構(gòu)簡介binjavac:Java編譯器,用來將java程序編譯成字節(jié)碼文件.class。java:Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成字節(jié)碼的java應(yīng)用程序。appletviewer:Java虛擬瀏覽器,用來解釋嵌到網(wǎng)頁中的java小應(yīng)用程序。lib:Java類庫Jre\lib:Java核心類庫系統(tǒng)環(huán)境變量的設(shè)置JAVA_HOME目的是指明JDK的安裝目錄,如:(或者D:\Java\jdk1.6.0_21)等CLASSPATH目的為了讓JVM找到指定的Java程序 〔JVMclass〕.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\jre\lib\rt.jar;簡化CLASSPATH配置如果一個(gè)目錄(例如在d:\jars)下有很多.jar文件,可以按照如下方式配置:d:\jars\*系統(tǒng)環(huán)境變量的設(shè)置〔cont.〕PATH目的是讓操作系統(tǒng)找到指定的工具程序
〔WindowsJDK〕例如java.exe,javac.exe等%JAVA_HOME%\bin%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\ProgramFiles\MicrosoftSQLServer\90\Tools\binn\;%JAVA_HOME%\bin注意編譯和執(zhí)行java程序時(shí),編譯系統(tǒng)會(huì)自動(dòng)到當(dāng)前工作目錄、jdk安裝路徑下的lib目錄下尋找需加載的類。因此,可以簡化classpath變量的設(shè)置。檢查Java運(yùn)行環(huán)境設(shè)置C:\>javaUsage:java[-options]class[args...](toexecuteaclass)orjava-jar[-options]jarfile[args...](toexecuteajarfile)C:\>javacUsage:javac<options><sourcefiles>…
…
…
…C:\>java–versionjavaversion"1.4.2_03"Java(TM)2RuntimeEnvironment,StandardEdition(build1.4.2_03-b02)JavaHotSpot(TM)ClientVM(build1.4.2_03-b02,mixedmode)1.3java程序的類型應(yīng)用程序-JavaApplication獨(dú)立的Java程序程序入口方法:publicstaticvoidmain(String[]args){…}小應(yīng)用程序-JavaApplet在Web瀏覽器中運(yùn)行(內(nèi)嵌Java虛擬機(jī))特定標(biāo)記<APPLETCODE="HelloWorld.class"WIDTH=150HEIGHT=25></APPLET>特定的程序Servlet、EJB等JavaApplication程序根本結(jié)構(gòu)import語句class{publicstaticvoidmain(String[]args){}}主類名稱方法體1.3第一個(gè)Java應(yīng)用程序〔01〕/**〔02〕*程序1-1:一個(gè)向控制臺(tái)輸出字符串的應(yīng)用程序〔03〕*/〔04〕publicclassHelloWorldApp{〔05〕/*main方法是構(gòu)成Java應(yīng)用程序執(zhí)行不可缺少的局部〔06〕@paramargs一個(gè)String類型的數(shù)組〔07〕*/〔08〕publicstaticvoidmain(String[]args){〔09〕 ("HelloWorld!");//向控制臺(tái)輸出〔10〕}〔11〕}注釋定義類Main函數(shù)方法體注意:保存為HelloWorldApp.java說明Java程序嚴(yán)格區(qū)分大小寫import導(dǎo)入所需包中的類,在類中包含我們使用的方法〔函數(shù)〕。類定義關(guān)鍵字class前面可以有修飾符〔如public〕,如果前面的修飾符是public,該類的類名必須要與這個(gè)類所在的源文件名稱相同在一個(gè)源文件中,可以同時(shí)定義多個(gè)類,但最多只能有一個(gè)public類型的類在記事本編輯Java程序單擊開始依次選擇程序->附件->記事本//這是名稱為“HelloWorld.java”的簡單程序importjava.io.*;classHelloWorld{ publicstaticvoidmain(Stringargs[]){ (“歡送訪問Java世界!“);}}編譯和運(yùn)行單擊開始依次選擇程序->附件->命令提示符進(jìn)入程序所保存的目錄輸入命令編譯HelloWorld輸入命令執(zhí)行HelloWorld輸出結(jié)果JavaAPI文檔選擇包選擇包中的接口或類可查看相應(yīng)幫助和其他語言開發(fā)過程的比較Java程序開發(fā)步驟〔編碼,編譯,解釋,執(zhí)行〕C程序開發(fā)步驟〔編碼,編譯,執(zhí)行〕類的定義關(guān)鍵字class-表示要定義一個(gè)類(模板),一個(gè)類在結(jié)構(gòu)上包含數(shù)據(jù)變量和方法,表示功能的語句總是包含在方法中。1.3.2JAVA應(yīng)用程序編程原那么publicclass
Dog{Stringname;publicvoidbark(){ System.out.println(“brak!");}}定義類文件public修飾的類名稱必須與包含它的Java源程序文件名一致publicclassDog{ ...}那么文件名一定要是:Dog.java并且大小寫敏感(一致)
1.3.2JAVA應(yīng)用程序編程原那么總之,類文件的定義一個(gè)Java應(yīng)用程序至少包含一個(gè)類。一個(gè)Java源文件一般只包含一個(gè)public類定義。一個(gè)類可以是一個(gè)空類,不包含任何屬性定義和方法聲明。聲明一個(gè)類時(shí),其類名的第一個(gè)字母應(yīng)該大寫。類名通常是有意義的。主方法(mainMethod)每個(gè)Java應(yīng)用程序必須有且只能有的一個(gè)方法,它是程序執(zhí)行的入口,運(yùn)行時(shí)被虛擬機(jī)自動(dòng)執(zhí)行該方法的聲明格式是固定的,不能變更方法被程序調(diào)用而執(zhí)行,并不會(huì)自動(dòng)執(zhí)行1.3.2JAVA應(yīng)用程序編程原那么publicclassDog{publicvoidbark(){System.out.println(“brak!");}publicstaticvoidmain(String[]args){ Dogd=newDog(); d.bark(); }}類和變量的引用一個(gè)類中引用其他類,要注意在文件頭,使用import加載java.lang包中的類不需要明確import引用一個(gè)類或?qū)ο蟮淖兞亢头椒ǎㄟ^“.”實(shí)現(xiàn)引用JAVA應(yīng)用程序編程原那么import;publicclassHelloWorld{ publicstaticvoidmain(String[]args){Datenow=newDate();
System.out.println(now); }}類和包介紹類是描述提供某種功能的模塊的一般術(shù)語。Java開發(fā)集〔JDK〕給出了一套標(biāo)準(zhǔn)的類〔稱作類庫〕,這些類可執(zhí)行大局部所需的根本行為不僅為編程任務(wù)〔例如,類可提供根本的數(shù)學(xué)函數(shù)、數(shù)組和字符串〕,而且為圖形和網(wǎng)絡(luò)程序開發(fā)提供了豐富的支持。類庫被組織成許多包,每個(gè)包都包含幾個(gè)類。如下所列為一些重要的包:java.lang包含一些形成語言核心的類,如String、Math、Integer和Thread。java.awt包含了構(gòu)成抽象窗口工具包〔AWT〕的類,這個(gè)包被用來構(gòu)建和管理應(yīng)用程序的圖形用戶界面。java.applet包含了可執(zhí)行applet特殊行為的類。包含執(zhí)行與網(wǎng)絡(luò)相關(guān)的操作的類和處理接口及統(tǒng)一資源 定位器(URLs)的類。java.io包含處理I/O文件的類。java.util包含為任務(wù)設(shè)置的實(shí)用程序類,如隨機(jī)數(shù)發(fā)生、定義系統(tǒng)特性和使用與日期日歷相關(guān)的函數(shù)。書寫標(biāo)準(zhǔn)每個(gè)程序應(yīng)以說明程序目的,作者,日期和時(shí)間的注釋開始;使用空格和空行可以提高程序可讀性;花括號(hào)對(duì)“{}”-類,方法,語句塊語句分號(hào)“;”結(jié)尾縮進(jìn):當(dāng)程序中輸入一對(duì)花括號(hào),然后把光標(biāo)重新定位到兩個(gè)括號(hào)之間,先縮進(jìn)一級(jí),再開始輸入程序體,該習(xí)慣有利于防止漏掉括號(hào)的錯(cuò)誤JAVA應(yīng)用程序編程原那么importjava.util.*;publicclassArrayDemo{ publicstaticvoidmain(String[]args){ int[]a={10,7,9,2,4,5,1,3,6,8}; Arrays.sort(a); Set<String>week=newHashSet<String>(); Iterator<String>it=week.iterator(); week.add("hello"); for(Stringstr:week){ System.out.println(str); } }}對(duì)齊關(guān)系密切的行應(yīng)對(duì)齊,對(duì)齊包括類型、修飾、名稱、參數(shù)等各局部對(duì)齊。連續(xù)賦值時(shí)當(dāng)對(duì)齊操作符。當(dāng)方法參數(shù)過多時(shí)當(dāng)在每個(gè)參數(shù)后〔逗號(hào)后〕換行并對(duì)齊。當(dāng)控制或循環(huán)中的條件比較長時(shí)當(dāng)換行〔操作符前〕、對(duì)齊并注釋各條件。變量定義最好通過添加空格形成對(duì)齊,同一類型的變量應(yīng)放在一起。//變量對(duì)齊-----------------------------------------------intcount=100;StringstrUserName=null;Integer[]porductCode=newInteger(2);//產(chǎn)品編碼數(shù)組//參數(shù)對(duì)齊----------------------------------------------publicConnectiongetConnection(Stringurl,StringuserName,Stringpassword)throwsSQLException,IOException{}//換行對(duì)齊----------------------------------------------publicfinalstaticStringSQL_SELECT_PRODUCT=“SELECT*“+“FROMTProductWHEREProd_ID=”+prodID;//條件對(duì)齊----------------------------------------------if(Condition1//當(dāng)條件一
&&Condition2//并且條件二
||Condition3){//或者條件三}命名標(biāo)準(zhǔn)類:類名是個(gè)一名詞,采用大小寫混合的方式,每個(gè)單詞的首字母大寫。方法:方法名是一個(gè)動(dòng)詞,采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。 變量:除了變量名外,所有實(shí)例,包括類,類常量,均采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。變量名不應(yīng)以下劃線或美元符號(hào)開頭,盡管這在語法上是允許的。變量名應(yīng)簡短且富于描述。變量名的選用應(yīng)該易于記憶,即,能夠指出其用途。盡量防止單個(gè)字符的變量名,除非是一次性的臨時(shí)變量。 常量:類常量和ANSI常量的聲明,應(yīng)該全部大寫,單詞間用下劃線隔開。(盡量防止ANSI常量,容易引起錯(cuò)誤)注釋注釋應(yīng)該增加代碼的清晰度。代碼注釋的目的是要使代碼更易于被其他開發(fā)人員等理解。防止使用裝飾性內(nèi)容。保持注釋的簡潔。注釋信息不僅要包括代碼的功能,還應(yīng)給出原因。不要為注釋而注釋。除變量定義等較短語句的注釋可用行尾注釋外,其他注釋當(dāng)防止使用行尾注釋。注解方式(Comments)/**注釋內(nèi)容*/-文檔注解/*注釋內(nèi)容*/-程序內(nèi)的任意位置//注釋內(nèi)容-對(duì)本行注解文檔注釋(被稱為"doccomments")是Java獨(dú)有的,并由/**...*/界定。文檔注釋可以通過javadoc工具轉(zhuǎn)換成HTML文件。文檔注釋描述Java的類、接口、構(gòu)造器,方法,以及字段(field)。每個(gè)文檔注釋都會(huì)被置于注釋定界符/**...*/之中,一個(gè)注釋對(duì)應(yīng)一個(gè)類、接口或成員。該注釋應(yīng)位于聲明之前:
/***Classdescriptiongoeshere.**@authorFirstnameLastname*/publicclassBlahextendsSomeClass{… /** *...methoddoSomethingElsedocumentationcomment... *@paramsomeParamdescription */ publicvoiddoSomethingElse(ObjectsomeParam){ //...implementationgoeshere... }}塊注釋通常用于提供對(duì)文件,方法,數(shù)據(jù)結(jié)構(gòu)和算法的描述。塊注釋被置于每個(gè)文件的開始處以及每個(gè)方法之前。它們也可以被用于其他地方,比方方法內(nèi)部。在功能和方法內(nèi)部的塊注釋應(yīng)該和它們所描述的代碼具有一樣的縮進(jìn)格式。/*-*Hereisablockcommentwithsomeveryspecial*formattingthatIwantindent(1)toignore.**one*two*three*/行末注釋(End-Of-LineComments)注釋界定符"http://",可以注釋掉整行或者一行中的一局部。它一般不用于連續(xù)多行的注釋文本;if(foo>1){
//Doadouble-flip....}else{returnfalse;//Explainwhyhere.}1.3.4排除常犯的錯(cuò)誤聲明一個(gè)類的關(guān)鍵字class,寫成了Class,要注意大小寫。聲明main方法時(shí),方法修飾符沒有嚴(yán)格按照publicstaticvoid的順序,并且其參數(shù)是一個(gè)字符串?dāng)?shù)組String[]
大小寫問題,例如把main方法的參數(shù)args的類型String[],改成了string[],把System寫成了system。'JAVAC'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.
解釋:編譯錯(cuò)誤。包含javac.exe編譯器的路徑變量設(shè)置不正確,操作系統(tǒng)無法發(fā)現(xiàn)該執(zhí)行文件。類名和文件名不能保持一致。如:HelloWorldAp.java:5:classHelloWorldAppispublic,shouldbedeclaredinafilenamedHelloWorldApp.javapublicclassHelloWorldApp{解釋: 編譯錯(cuò)誤。當(dāng)一個(gè)類被“public”修飾時(shí),包含這個(gè)類的文件名應(yīng)該和該類名完全一致。不能發(fā)現(xiàn)需要執(zhí)行的類。如:
Exceptioninthread"main":HelloWorldApp解釋:運(yùn)行錯(cuò)誤。有時(shí)即使該類的字節(jié)碼文件就在當(dāng)前目錄下,也會(huì)報(bào)這種錯(cuò)誤。這種錯(cuò)誤的主要原因是由于沒有為運(yùn)行時(shí)環(huán)境提供正確的類加載說明,詳細(xì)說明請(qǐng)參閱附錄。7.HelloWorldApp.java:10:cannotresolvesymbol解釋:在HelloWorldApp.java中發(fā)現(xiàn)一個(gè)不認(rèn)識(shí)的符號(hào)。symbol:methodprintl()解釋:這個(gè)符號(hào)是一個(gè)名為printl的方法,該方法有一個(gè)字符串類型的參數(shù)。location:class解釋:該方法是Printstream類中的方法。1.4Java的工作原理Java的結(jié)構(gòu)JavaProgramJavaVirtualMachineJavaAPISYourComputerSystemJava的編譯與執(zhí)行1.4.2Java應(yīng)用程序執(zhí)行過程1.加載加載就是把二進(jìn)制形式的字節(jié)碼讀入虛擬機(jī)中。加載過程是由類加載器完成的,該加載器是ClassLoader的子類。2.鏈接鏈接是取得加載的類或接口,并將其與JVM運(yùn)行時(shí)環(huán)境結(jié)合起來,以準(zhǔn)備執(zhí)行的過程,這個(gè)過程包括檢驗(yàn),準(zhǔn)備和解析三個(gè)步驟。3.初始化如果類存在對(duì)非final靜態(tài)變量的賦值,或者static代碼段,在編譯時(shí)會(huì)隱式生成一個(gè)cinit()方法,即初始化執(zhí)行的方法體。1.4.3Java虛擬機(jī)不同的操作系統(tǒng)有不同的虛擬機(jī)。它類似一個(gè)小巧而高效的CPU。Bytecode代碼是與平臺(tái)無關(guān)的是虛擬機(jī)的機(jī)器指令。Java字節(jié)代碼運(yùn)行的兩種方式:Interpreter(解釋方式)Just-in-time(即時(shí)編譯):有代碼生成器將字節(jié)代碼轉(zhuǎn)換本錢機(jī)的機(jī)器代碼,然后可以以較高速度執(zhí)行.虛擬機(jī)的任務(wù)提供垃圾回收功能提供運(yùn)行時(shí)環(huán)境提供中立的體系結(jié)構(gòu)JVM運(yùn)行時(shí)的數(shù)據(jù)區(qū)結(jié)構(gòu)方法區(qū)方法區(qū)是由所有JVM線程共享的一個(gè)公共存儲(chǔ)區(qū)。方法區(qū)存儲(chǔ)類的根本信息、常量池、靜態(tài)變量、字段信息、方法信息、一個(gè)到類ClassLoader的引用,一個(gè)到Class類的引用。堆堆是一個(gè)自由內(nèi)存區(qū)域,常用于內(nèi)存的動(dòng)態(tài)分配或臨時(shí)分配。堆是一種運(yùn)行時(shí)數(shù)據(jù)區(qū),為類和數(shù)組對(duì)象提供內(nèi)存。JVM在啟動(dòng)時(shí)創(chuàng)立堆,然后當(dāng)Java中創(chuàng)立類或數(shù)組對(duì)象時(shí),就從堆中分配所需內(nèi)存。當(dāng)對(duì)象或數(shù)組不再存在后,由一個(gè)稱為垃圾收集的自動(dòng)存儲(chǔ)管理系統(tǒng)來回收堆內(nèi)存。棧每一個(gè)線程都有自己私有的一個(gè)JAVA棧,任何線程不能調(diào)用其它線程的棧,Java的棧幀用于存儲(chǔ)方法調(diào)用的狀態(tài)。當(dāng)線程調(diào)用一個(gè)方法的時(shí)候,JVM會(huì)在該線程的JAVA棧上壓入一個(gè)新幀。自然該幀成為當(dāng)前幀,在執(zhí)行該方法期間,線程用該幀來儲(chǔ)存參數(shù),局部變量和中間運(yùn)算結(jié)果等。JAVA方法執(zhí)行有兩種情況,一種是正常執(zhí)行完成return,另一種是異常拋出中止。虛擬機(jī)都會(huì)將當(dāng)前的棧幀出棧。棧與堆Java將它的內(nèi)存空間分為兩局部:一種叫棧內(nèi)存,一種叫堆內(nèi)存。局部變量與方法都是在棧內(nèi)存中定義和分配的。堆內(nèi)存是通過n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 股東間股權(quán)轉(zhuǎn)讓協(xié)議
- 月嫂家政服務(wù)合同
- 廣告位租賃的合同
- 設(shè)備維護(hù)服務(wù)合同
- 停車車位租賃合同
- 模具鋼材采購合同
- 一兒一女夫妻離婚協(xié)議書
- 2025年日照貨運(yùn)從業(yè)資格證模擬考試駕考
- 2025年德州貨運(yùn)從業(yè)資格證模擬考試下載安裝
- 電梯管理方維修方及業(yè)主方三方合同(2篇)
- 梅大高速塌方災(zāi)害調(diào)查評(píng)估報(bào)告及安全警示學(xué)習(xí)教育
- 2025年供應(yīng)鏈管理培訓(xùn)課件
- 2025中智集團(tuán)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 幼兒園2025年春季學(xué)期保教工作計(jì)劃
- 2025云南中煙再造煙葉限責(zé)任公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- DB13-T 6033-2024 半導(dǎo)體器件低濃度氫效應(yīng)試驗(yàn)方法
- 《保利公司簡介》課件
- 中藥硬膏熱貼敷治療
- 醫(yī)保藥店員工培訓(xùn)管理制度
- 2025年中考語文文言文專項(xiàng)訓(xùn)練:《愚公移山》對(duì)比閱讀(含答案)
- 《攜程旅行營銷環(huán)境及營銷策略研究》10000字(論文)
評(píng)論
0/150
提交評(píng)論