版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Java程序設(shè)計(jì)基礎(chǔ)與實(shí)踐 第1章 Java環(huán)境的安裝、配置與運(yùn)行 本章導(dǎo)讀Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺的總稱。Java的誕生是對傳統(tǒng)計(jì)算機(jī)模式的挑戰(zhàn),對計(jì)算機(jī)軟件開發(fā)和軟件產(chǎn)業(yè)都產(chǎn)生了深遠(yuǎn)的影響。Java一經(jīng)推出就贏得了前所未有的成功,從2001年至今,Java語言一直是世界上應(yīng)用最廣泛的編程語言,因此現(xiàn)在有越來越多的工作者、學(xué)習(xí)者正努力進(jìn)入Java領(lǐng)域或?qū)⒁M(jìn)入Java領(lǐng)域,因此,學(xué)習(xí)Java語言很有必要?!肮び破涫?,必先利其器”,搭建開發(fā)環(huán)境是學(xué)習(xí)語言的第一步,環(huán)境好搭建后,熟悉開發(fā)環(huán)境及簡單程序的解讀就是
2、學(xué)習(xí)語言的第二步了。 本章要點(diǎn) Java簡介 Java的特點(diǎn) Java運(yùn)行環(huán)境的安裝與配置 Java程序結(jié)構(gòu) Java程序的運(yùn)行機(jī)制和垃圾回收機(jī)制 Java程序的編寫、編譯和運(yùn)行1.1 基礎(chǔ)知識1.1.1 Java簡介 美國硅谷有一句行話,每10年15年有一次輪回。最近的一次輪回就是從Java開始。 Java的產(chǎn)生 Sun的Java語言開發(fā)小組成立于1991年,其目的是開拓消費(fèi)類電子產(chǎn)品市場,Sun內(nèi)部人員把這個(gè)項(xiàng)目稱為Green,Green小組的領(lǐng)導(dǎo)人是JamesGosling,是一位非常杰出的程序員。在研究開發(fā)過程中,Gosling深刻體會到消費(fèi)類電子產(chǎn)品和工作站產(chǎn)品在開發(fā)哲學(xué)上的差異。消
3、費(fèi)類電子產(chǎn)品要求可靠性高、費(fèi)用低、標(biāo)準(zhǔn)化、使用簡單,用戶并不關(guān)心CPU的型號,也不欣賞專用昂貴的RISC處理器。為了使整個(gè)系統(tǒng)與平臺無關(guān),Gosling首先從改寫C+編譯器著手。但是Gosling在改寫過程中感到僅C+是無法滿足需要的,于是在1991年6月份開始準(zhǔn)備開發(fā)一個(gè)新的語言,那么給它起一個(gè)什么名字呢?Gosling回首向窗外望去,看見一棵老橡樹,于是建一個(gè)目錄叫Oak,這就是Java語言的前身。Java的產(chǎn)生 Gosling在開始寫Oak時(shí),并不局限于擴(kuò)充語言機(jī)制本身,更注重于語言所運(yùn)行的軟硬件環(huán)境。他要建立一個(gè)系統(tǒng),這個(gè)系統(tǒng)運(yùn)行于一個(gè)巨大的、分布的、異構(gòu)的網(wǎng)格環(huán)境中,完成各電子設(shè)備之
4、間的通信與協(xié)同工作。Gosling在設(shè)計(jì)中采用了虛機(jī)器碼(VirtualMachineCode)方式,即Oak語言編譯后產(chǎn)生的是虛擬機(jī),虛擬機(jī)運(yùn)行在一個(gè)解釋器上,每一個(gè)操作系統(tǒng)均有一個(gè)解釋器,這樣一來,Oak就成了與平臺無關(guān)語言。當(dāng)Naughton加入該小組后,整個(gè)工作進(jìn)展神速。經(jīng)過17個(gè)月的奮戰(zhàn),整個(gè)系統(tǒng)勝利完成。它是由一個(gè)操作系統(tǒng)、一種語言(Java)、一個(gè)用戶界面、一個(gè)新的硬件平臺、三塊專用芯片構(gòu)成的。到了1994年,WWW已如火如荼地發(fā)展起來。Gosling意識到WWW需要一個(gè)中性的瀏覽器,它不依賴于任何硬件平臺和軟件平臺,它應(yīng)是一種實(shí)時(shí)性較高、可靠安全、有交互功能的瀏覽器。于是Gos
5、ling決定用Oak開發(fā)一個(gè)新的Web瀏覽器。Java的產(chǎn)生 這項(xiàng)工作由Naughton和Jonathan Payne負(fù)責(zé),到1994年秋天,完成了WebRunner的開發(fā)工作。WebRunner是HotJava的前身,這個(gè)原型系統(tǒng)展示了Java可能帶來的廣闊市場前景。WebRunner改名為HotJava,并于1995年5月23日發(fā)表后,在產(chǎn)業(yè)界引起了巨大的轟動,Java的地位也隨之而得到肯定。又經(jīng)過一年的試用和改進(jìn),Java1.0版終于在1996年年初正式發(fā)表。Java語言在叫“Java”之前名為“Oak”,橡樹。一門語言怎么起到了一棵樹的名字?早先開發(fā)這門語言的Green小組成員,在為還
6、在“孕期”中待產(chǎn)的新生語言起名時(shí),看到了窗外的一棵橡樹,就是這樣一念的靈感和聯(lián)想,把一門新生語言的小名落實(shí)了??上н@個(gè)綠意的名字最終被放棄,因?yàn)樵谟肙ak去注冊商標(biāo)時(shí),發(fā)現(xiàn)這個(gè)名已被注冊他用,于是Sun的精英們喝著咖啡編排新名,杯里的熱咖啡冒著香氣,順著香氣思維游蕩到盛產(chǎn)咖啡的爪哇島,爪哇!Java由此命名。 Java的發(fā)展 Sun繼Green項(xiàng)目后又經(jīng)過了幾年的研究,終于在1995年5月23日在Sun World95上正式發(fā)布Java和HotJava瀏覽器。在同年,有很多公司先后獲得了Java許可證,如Netscape在1995年8月,Oracle在1995年10月分別獲得了Java許可證。
7、Sun在1995年發(fā)布第一個(gè)Java版本后,于1996年1月宣布成立新的業(yè)務(wù)部門JavaSoft部,這個(gè)部分主要負(fù)責(zé)開發(fā)、銷售并支持基于Java技術(shù)的產(chǎn)品,由AlanBaratz先生任總裁。在1995年Sun雖然推出了Java,但這只是一種語言,而要想開發(fā)復(fù)雜的應(yīng)用程序,必須要有一個(gè)的強(qiáng)大的開發(fā)庫支持還行。因此,Sun在1996年1月23日發(fā)布了JDK1.0。這個(gè)版本包括了兩部分:運(yùn)行環(huán)境(即JRE)和開發(fā)環(huán)境(即JDK)。在運(yùn)行環(huán)境中包括了核心API、集成API、用戶界面API、發(fā)布技術(shù)和Java虛擬機(jī)(JVM)五個(gè)部分。而開發(fā)環(huán)境還包括了編譯Java程序的編譯器(即javac)。在JDK1
8、.0時(shí)代,JDK除了AWT(一種用于開發(fā)圖形用戶界面的API)外,其它的庫并不完整。Java的發(fā)展 Sun在推出JDK1.0后,緊跟著,Sun在1997年2月18日發(fā)布了JDK1.1。JDK1.1相對于JDK1.0最大的改進(jìn)就是為JVM增加了JIT(即時(shí)編譯)編譯器。JIT和傳統(tǒng)的編譯器不同,傳統(tǒng)的編譯器是編譯一條,運(yùn)行完后再將其扔掉,而JIT會將經(jīng)常用到的指令保存在內(nèi)容中,在下次調(diào)用時(shí)就不需要再編譯了。這樣JDK在效率上有了非常大的提升。Sun在推出JDK1.1后,接著又推出了數(shù)個(gè)JDK1.x版本。1998年是Java開始迅猛發(fā)展的一年。在這一年中Sun發(fā)布了JSP/Servlet、EJB規(guī)
9、范以及將Java分成了J2EE、J2SE和J2ME。標(biāo)志著Java已經(jīng)吹響了向企業(yè)、桌面和移動3個(gè)領(lǐng)域進(jìn)軍的號角。到1998年,Java已經(jīng)走過了3個(gè)年頭。從JDK1.0到JDK1.1.8。JDK1.x經(jīng)過了9個(gè)小版本的發(fā)展,已經(jīng)初具規(guī)模。至此,它已經(jīng)走出了搖籃,可以去獨(dú)闖世界了。Java的發(fā)展 在1998年12月4日。Sun發(fā)布了Java的歷史上最重要的一個(gè)JDK版本:JDK1.2。這個(gè)版本標(biāo)志著Java已經(jīng)進(jìn)入Java2時(shí)代。這個(gè)時(shí)期也是Java飛速發(fā)展的時(shí)期。在Java2時(shí)代Sun對Java進(jìn)行了很多革命性的變化 ,而這些革命性的變化一直沿用到現(xiàn)在,對Java的發(fā)展形成了深遠(yuǎn)的影響。JD
10、K1.2自從被分成了J2EE、J2SE和J2ME三大塊,得到了市場的強(qiáng)烈反響。不僅如此,JDK1.2還對它的API分成了核心API、可選API和特殊API三大類。從JDK1.2開始,Sun以平均2年一個(gè)版本的速度推出新的JDK。在2000年5月8日。Sun對JDK1.2進(jìn)行了重大升級。推出了JDK1.3。Sun在JDK1.3中同樣進(jìn)行了大量的改進(jìn),主要表現(xiàn)在一些類庫上(如數(shù)學(xué)運(yùn)算、新的Timer API等)、在JNDI接口方面增加了一些DNS的支持、增加了JNI的支持,這使得Java可以訪問本地資源、支持XML以及使用新的Hotspot虛擬機(jī)代替了傳統(tǒng)的虛擬機(jī)。Java的發(fā)展 2002年2月1
11、3日Sun發(fā)布了JDK歷史上最為成熟的版本JDK1.4。在進(jìn)入21世紀(jì)以來,曾經(jīng)在.NET平臺和Java平臺之間發(fā)生了一次聲勢浩大的孰優(yōu)孰劣的論戰(zhàn),Java的主要問題就是性能。因此,這次Sun將主要精力放到了Java的性能上。在JDK1.4中,Sun放言要對Hotspot虛擬機(jī)的鎖機(jī)制進(jìn)行了改進(jìn),使JDK1.4的性能有了質(zhì)的飛躍。同時(shí)由于Compaq、Fujitsu、 SAS、 Symbian、 IBM等公司的參與,使JDK1.4成為發(fā)展最快的一個(gè)JDK版本。到JDK1.4為止,我們已經(jīng)可以使用Java實(shí)現(xiàn)大多數(shù)的應(yīng)用了。在2004年10月,Sun發(fā)布了我們期待已久的版本JDK1.5,同時(shí),S
12、un將JDK1.5改名為J2SE5.0。和JDK1.4不同,JDK1.4的主題是性能,而J2SE5.0的主題是易用。Sun之所以將版本號1.5改為5.0,就是預(yù)示著J2SE5.0較以前的J2SE版本有著很大的改過。Java的發(fā)展 到2006年底Sun又再接再厲地推出了J2SE6.0的測試版,并在2007年初推出它的正式版。正象J2SE6.0的開發(fā)代號“野馬(Mustang)”一樣,我們已經(jīng)隱約聽到了野馬的嘶鳴。據(jù)Sun發(fā)言人稱,J2SE6.0不僅在性能、易用性方面得到了前所未有的提高,而且還提供了如腳本、全新的API(Swing和AWT等API已經(jīng)被更新)的支持。而且J2SE6.0是專為Vis
13、ta而設(shè)計(jì)的,它在Vista上將會擁有更好的性能。在推出J2SE6.0的同時(shí),J2SE7.0項(xiàng)目也已經(jīng)啟動。在Java發(fā)展的十幾年的時(shí)間里,經(jīng)歷了無數(shù)的風(fēng)風(fēng)雨雨。現(xiàn)在Java已經(jīng)成為一種相當(dāng)成熟的語言了。在這10年的發(fā)展中,Java平臺吸引了數(shù)百萬的開發(fā)者,在網(wǎng)絡(luò)計(jì)算遍及全球的今天,更是有20億臺設(shè)備使用了Java技術(shù)。2009年4月20日,Oracle(甲骨文)宣布收購Sun。 Java的意義軟件4A目標(biāo)要求軟件能達(dá)到任何人在任何地方在任何時(shí)間對任何電子設(shè)備都能應(yīng)用。這樣能滿足軟件平臺上互相操作,具有可伸縮性和重要性并可即插即用等分布式計(jì)算模式的需求。基于構(gòu)建開發(fā)方法的崛起,引出了CORBA
14、國際標(biāo)準(zhǔn)軟件體系結(jié)構(gòu)和多層應(yīng)用體系框架。在此基礎(chǔ)上形成了Java.2平臺和.NET平臺兩大派系,推動了整個(gè)IT業(yè)的發(fā)展。Java的意義對軟件產(chǎn)業(yè)和工業(yè)企業(yè)都產(chǎn)生了深遠(yuǎn)的影響,軟件從以開發(fā)為中心轉(zhuǎn)到了以服務(wù)為中心。中間提供商,構(gòu)件提供商,服務(wù)器軟件以及咨詢服務(wù)商出現(xiàn)。企業(yè)必須重塑自我,B2B的電子商務(wù)將帶動整個(gè)新經(jīng)濟(jì)市場,使企業(yè)獲得新的價(jià)值,新的增長,新的商機(jī),新的管理。對軟件開發(fā)帶來了新的革命,重視使用第三方構(gòu)件集成,利用平臺的基礎(chǔ)設(shè)施服務(wù),實(shí)現(xiàn)開發(fā)各個(gè)階段的重要技術(shù),重視開發(fā)團(tuán)隊(duì)的組織和文化理念,協(xié)作,創(chuàng)作,責(zé)任,誠信是人才的基本素質(zhì)。 1.1.2 Java語言特點(diǎn)Java語言是簡單的Jav
15、a語言是面向?qū)ο蟮?Java語言是分布式的Java語言是健壯的Java語言是安全的Java語言是體系結(jié)構(gòu)中立的1.1.2 Java語言特點(diǎn)Java語言是可移植的Java語言是解釋型的Java是高性能的Java語言是多線程的Java語言是動態(tài)的1.1.3 Java運(yùn)行環(huán)境的安裝與配置JDK 是Java開發(fā)工具包 (JavaDevelopment Kit ) 的縮寫。它是一種用于構(gòu)建在 Java 平臺上發(fā)布的應(yīng)用程序、applet 和組件的開發(fā)環(huán)境。JDK是一切Java應(yīng)用程序的基礎(chǔ),所有的Java應(yīng)用程序是構(gòu)建在這個(gè)之上的。它是一組API,也可以說是一些Java Class。要成為一個(gè)Java程
16、序員,JDK是必不可少的最基本的工具。 JDK的下載與安裝 機(jī)器要求Java對機(jī)器運(yùn)行要求不高。下面給出的是基于Windows平臺的機(jī)器要求。 硬件要求:CPU PII以上,64M內(nèi)存,100M硬盤空間即可。 軟件要求:Windows98/Me/XP/NT/2000,IE 5以上。 JDK的下載與安裝 下載 JDK為了建立基于JDK的Java運(yùn)行環(huán)境,需要先下載Sun的免費(fèi)JDK軟件包。JDK包含了一整套開發(fā)工具,其中包含對編程最有用的是Java編譯器、Applet查看器和Java解釋器。在瀏覽器中輸入 /javase/downloads/index.jsp,可看到JDK下載主頁面。下載 JD
17、K在Java Platform中選擇JDK 6 Update 18,點(diǎn)擊“Download JDK”按鈕,即可進(jìn)入JDK1.6下載頁面 。單擊Download按鈕,即可進(jìn)入jdk-6u18-windows-i586.exe的下載頁面 。此時(shí)點(diǎn)擊jdk-6u18-windows-i586.exe,即可下載。 安裝 JDK雙擊下載的“jdk-6u18-windows-i586.exe”軟件包,出現(xiàn)安裝向?qū)Т翱?。等待一段時(shí)間,會自動出現(xiàn)安裝協(xié)議窗口 。單擊“接受”按鈕,出現(xiàn)安裝路徑設(shè)置窗口。缺省安裝路徑為“C:Program FilesJavajdk1.6.0_18”,可以單擊“更改”按鈕改變安裝
18、路徑,這里不做修改,單擊“下一步”按鈕,出現(xiàn)JDK安裝界面 。安裝過程中會出現(xiàn)JRE的安裝界面 。單擊“更改”按鈕可以改變安裝路徑,由于安裝JDK時(shí)已經(jīng)安裝了JRE,所以該項(xiàng)是可選的,如果不安裝,點(diǎn)擊“取消”按鈕。單擊“下一步”按鈕即安裝JRE 。安裝過程大約持續(xù)幾分鐘,出現(xiàn)安裝結(jié)束窗口,單擊“完成”按鈕即可完成JDK的安裝。 JDK文件瀏覽安裝成功后,可以瀏覽安裝路徑下“Javajdk1.6.0_18”中的文件和子目錄結(jié)構(gòu),其中,bin文件夾中包含編譯器(javac.exe)、解釋器(javac.exe)、Applet查看器(appletviewer.exe) 等可執(zhí)行文件,Demo文件夾中
19、包含一些源代碼的程序示例,感興趣的同學(xué)可自行查看。 Java運(yùn)行環(huán)境的配置方法 絕對路徑絕對路徑方法中無需配置JAVA_HOME。CLASSPATH中輸入“.; C:Program FilesJavajdk1.6.0_18jrelibrt.jar”。PATH中輸入“C:Program FilesJavajdk1.6.0_18bin”。其中,“C:Program FilesJavajdk1.6.0_18”為JDK安裝路徑。 Java運(yùn)行環(huán)境的配置方法 相對路徑方法首先定義一新的環(huán)境系統(tǒng)變量JAVA_HOME,令JAVA_HOME=“C:Program FilesJavajdk1.6.0_18”。
20、CLASSPATH中用%JAVA_HOME%取代“C:Program FilesJavajdk1.6.0_18”,CLASSPATH中輸入“.; %JAVA_HOME%jrelibrt.jar;”。同樣,PATH中用%JAVA_HOME%取代“C:Program FilesJavajdk1.6.0_18”, PATH中輸入“%JAVA_HOME%bin;”。 Java運(yùn)行環(huán)境的配置方法 批命令方法編輯一文件,具體文件命令如下:echo off IF EXIST %1binjava.exe ( rem 如輸入正確的 Java2JDK 安裝目錄,開始設(shè)置環(huán)境變量 setx JAVA_HOME %1
21、 setx path %path%;%JAVA_HOME%bin setx classpath %classpath%.;setx classpath %classpath%;%JAVA_HOME%jrelibrt.jar; echo on echo Java 2 JDK 環(huán)境參數(shù)設(shè)置完畢,正常退出。 ) Java運(yùn)行環(huán)境的配置方法ELSE ( IF %1= ( rem 如沒有提供安裝目錄,提示之后退出 echo on echo 沒有提供 Java2JDK 的安裝目錄,不做任何設(shè)置,現(xiàn)在退出環(huán)境變量設(shè)置。 ) ELSE ( rem 如果提供非空的安裝目錄但沒有binjava.exe,則指定的目
22、錄為錯(cuò)誤的目錄 echo on echo 非法的 Java2JDK 的安裝目錄,不做任何設(shè)置,現(xiàn)在退出環(huán)境變量設(shè)置。 ) ) Java運(yùn)行環(huán)境的配置方法 命令行方法命令行方法為每次重新啟動MS-DOS編譯和運(yùn)行Java程序時(shí)設(shè)置,在提示符下鍵入如下命令:SET PATH = C:Program FilesJavajdk1.6.0_18bin;SET CLASSPATH=.; C:Program FilesJavajdk1.6.0_18jrelibrt.jar; Java運(yùn)行環(huán)境的具體配置 Path和Classpath的配置在桌面“我的電腦”圖標(biāo)上單擊右鍵,選擇“屬性”菜單,將出現(xiàn)系統(tǒng)特性設(shè)置窗
23、口,在“高級”選項(xiàng)卡中單擊“環(huán)境變量”按鈕。將出現(xiàn)“環(huán)境變量”設(shè)置窗口,在“系統(tǒng)變量”列表框中選擇“Path”,然后單擊“編輯”按鈕,在出現(xiàn)的“編輯系統(tǒng)變量”對話框中,在“變量值”欄的命令最前面添加“C:Program FilesJavajdk1.6.0_18bin;”命令,用同樣方法設(shè)置環(huán)境變量“classpath”,其值為“.; C:Program FilesJavajdk1.6.0_18jrelibrt.jar;”命令,由于一般系統(tǒng)安裝時(shí)沒有classpath這個(gè)環(huán)境變量,所以要新建該環(huán)境變量,設(shè)置完成后,單擊“開始”/“所有程序”/“附件”/“命令提示符”打開DOS窗口,在命令提示符下
24、輸入“java”或“javac”,回車后,如果出現(xiàn)其用法參數(shù)提示信息,則表明安裝配置成功 Java運(yùn)行環(huán)境的具體配置 設(shè)置DOS起始位置為了在打開DOS 窗口時(shí)可以直接進(jìn)入Java程序的開發(fā)路徑下,下面以Windows XP/2000為例說明設(shè)置過程。首先建立一個(gè)存放Java源程序的路徑和文件夾,如將實(shí)踐中建立的Java源程序都存放在為“e:javabook”文件夾中。單擊“開始”/“所有程序”/“附件”/“命令提示符”,選中“命令提示符”選項(xiàng)單擊鼠標(biāo)右鍵,在出現(xiàn)的下拉菜單中選擇“屬性”菜單,打開“命令提示符屬性”對話框,在“命令提示符屬性”對話框中選擇“快捷方式”選項(xiàng)頁,在“起始位置”欄輸入
25、“e:javabook”,單擊“確定”按鈕即可。進(jìn)行了上面的設(shè)置后,打開DOS 窗口時(shí)將直接進(jìn)入“e:javabook”路徑下。 1.1.4 Java程序結(jié)構(gòu)一個(gè)Java應(yīng)用包含一個(gè)或多個(gè)Java源文件,每個(gè)Java源文件只能包含如下內(nèi)容(空格或注釋除外):0個(gè)或1個(gè)包聲明語句(Package Statement)0個(gè)或多個(gè)包引入語句(Import Statement)0個(gè)或多個(gè)類的聲明(Class Declaration)0個(gè)或多個(gè)接口聲明(Interface Declaration) 每個(gè)Java源文件可包含多個(gè)類或接口的定義,但是至多只有一個(gè)類或者接口是public的,而且Java源文件
26、必須以其中public類型的類的名字命名。 Java程序主要分為兩類: Java應(yīng)用程序(application):單獨(dú)的窗口應(yīng)用,一定要有包含main()方法的主程序。Java小程序(applet):這類程序嵌入在WWW的頁面中,作為頁面的組成部分被下載,并且能運(yùn)行在實(shí)現(xiàn)Java虛擬機(jī)的web瀏覽器中,它沒有main()方法。 Java程序public class Hello public static void main(String args) System.out.println(Hello,java!); 注意Java程序應(yīng)注意:代碼中區(qū)分大小寫。在這個(gè)代碼中定義public類的名字
27、是要和保存的文件名相同。 Java Applet程序import java.applet.Applet;import java.awt.Graphics; public class HelloWorldApplet extends Applet public void paint(Graphics g) g.drawString(Hello World!,0,50); 注意講解到這里,似乎有一個(gè)誤解,認(rèn)為只有在JavaApplet程序中會使用import語句,而在Java應(yīng)用程序中不要使用import語句。千萬不要有這個(gè)誤解,Java應(yīng)用程序中也會經(jīng)常使用import語句,只不過前面的例子是十
28、分簡單的應(yīng)用程序,所以沒有用到import語句,但Java中所有類都是Object類的子類,不用import語句顯式引入。而JavaApplet程序是一定要使用這個(gè)語句的,應(yīng)為至少需要包括與Applet有關(guān)的類。 1.1.5 Java程序的運(yùn)行機(jī)制和垃圾回收機(jī)制 Java程序的運(yùn)行機(jī)制Java是一種特殊的高級語言,它既具有編譯型語言的特征,又具有解釋型語言的特征。Java程序需要先要經(jīng)過編譯,再經(jīng)過解釋兩個(gè)步驟才能運(yùn)行。Java語言編寫的程序需要經(jīng)過編譯,而編譯所生成的并不是特定的平臺機(jī)器碼,只是一個(gè)與平臺(操作系統(tǒng))無關(guān)的字節(jié)碼文件。當(dāng)然這種字節(jié)碼不能被系統(tǒng)執(zhí)行,必須使用Java解釋器(JV
29、M,Java Virtual Machine ,也稱為Java虛擬機(jī),)來執(zhí)行。JVM是一個(gè)虛構(gòu)出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的,Java虛擬機(jī)有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng),JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),實(shí)際上最終還是把字節(jié)碼解釋成具體平臺上的機(jī)器指令執(zhí)行。1.1.5 Java程序的運(yùn)行機(jī)制和垃圾回收機(jī)制 Java的垃圾回收機(jī)制內(nèi)存是稀缺的資源,Java語言提供了垃圾收集機(jī)制。該
30、機(jī)制用以跟蹤正在使用的對象和發(fā)現(xiàn)并回收不再使用(引用)的對象,從而可以有效防范動態(tài)內(nèi)存分配中可能發(fā)生的兩個(gè)危險(xiǎn):因內(nèi)存垃圾過多而引發(fā)的內(nèi)存耗盡,以及不恰當(dāng)?shù)膬?nèi)存釋放所造成的內(nèi)存非法引用。Java語言對內(nèi)存的分配管理是通過JVM內(nèi)部機(jī)制決定的,編程人員可以不關(guān)心其處理。雖然Java垃圾收集器處理了大多數(shù)內(nèi)存管理問題,從而使編程變得更輕松了,但是編程人員還是可能犯錯(cuò)而導(dǎo)致出現(xiàn)內(nèi)存問題,所以很多情況下高級編程人員自己管理內(nèi)存,關(guān)于垃圾回收機(jī)制的問題請讀者參閱相關(guān)參考資料。 1.1.6 Java程序的編寫、編譯、運(yùn)行 利用記事本編寫、編譯、運(yùn)行Java程序(a) 編寫Java源程序單擊“開始”/“所有
31、程序”/“附件”/記事本,打開記事本窗口,輸入上面例子的Java源程序代碼,保存路徑為“E:javabook”,文件名為“Hello.java”。(b)編譯Java程序使用Java編譯器編譯Java程序,具體命令如下:javacoptionssourcefilesfiles其中:javac是命令關(guān)鍵字,后面的為命令參數(shù),參數(shù)可按任意次序排列。 options命令行選項(xiàng)選項(xiàng)含義-g 生成所有調(diào)試信息-g:none不生成任何調(diào)試信息-g:lines,vars,source 只生成某些調(diào)試信息-nowarn不生成任何警告-verbose輸出有關(guān)編譯器正在執(zhí)行的操作的消息-deprecation輸出使
32、用已過時(shí)的API的源位置-classpath 指定查找用戶類文件的位置-cp 指定查找用戶類文件的位置-sourcepath 指定查找輸入源文件的位置-bootclasspath 覆蓋引導(dǎo)類文件的位置-extdirs 覆蓋安裝的擴(kuò)展目錄的位置-endorseddirs 覆蓋簽名的標(biāo)準(zhǔn)路徑的位置-d 指定存放生成的類文件的位置-encoding 指定源文件使用的字符編碼-source 提供與指定版本的源兼容性-target 生成特定 VM 版本的類文件-version版本信息-help輸出標(biāo)準(zhǔn)選項(xiàng)的提要-X輸出非標(biāo)準(zhǔn)選項(xiàng)的提要-J直接將 傳遞給運(yùn)行時(shí)系統(tǒng)sourcefiles一個(gè)或多個(gè)要編譯的源
33、文件。files一個(gè)或多個(gè)對源文件進(jìn)行列表的文件。如果源文件數(shù)量少,在命令行上列出文件名即可。如果源文件數(shù)量多,則將源文件名列在一個(gè)文件中,名稱間用空格或回車行來進(jìn)行分隔,然后在javac命令行中使用該列表文件名,文件名前冠以字符。例如,可以在名為sourcefiles的文件中列出所有源文件的名稱。該文件可能形如:MyClass1.javaMyClass2.javaMyClass3.java然后可用下列命令運(yùn)行編譯器:e:javabook javacsourcefiles注意:源代碼文件名稱必須含有.java后綴,類文件名稱必須含有.class后綴,源文件和類文件都必須有識別該類的根名。例如,
34、名為MyClass的類將寫在名為MyClass.java的源文件中,并被編譯為字節(jié)碼類文件MyClass.class。缺省情況下,編譯器將每個(gè)類文件與其源文件放在同一目錄中,可用-d選項(xiàng)(請參閱后面的選項(xiàng))指定其它目標(biāo)目錄。 (c) 運(yùn)行Java程序Java使用Java解釋器可將編譯后的字節(jié)碼文件Hello.class解釋為本地計(jì)算機(jī)代碼。命令如下:java -options class args.其中: class為字節(jié)碼文件名。args是java程序執(zhí)行時(shí)傳遞給main()方法的參數(shù)。 options命令行選項(xiàng) 選項(xiàng)含義-client選擇“client”VM-server選擇“server
35、”VM-hotspot與“client”VM同義,默認(rèn)情況的VM是client-cp指定查找用戶類文件的位置-classpath 指定查找用戶類文件的位置-d=在虛擬機(jī)的系統(tǒng)屬性中設(shè)置屬性名/值對-verbose:class|gc|jni使詳細(xì)輸出變的可用-version打印產(chǎn)品版本然后退出-version:只運(yùn)行指定版本-showversion打印產(chǎn)品版本后繼續(xù)-? -help打印幫助信息-X打印非標(biāo)準(zhǔn)選項(xiàng)幫助 使用EditPlus編輯、編譯、運(yùn)行Java程序 (a) EditPlus編輯軟件的下載和安裝EditPlus編輯軟件在網(wǎng)上有很多,在百度中輸入“EditPlus下載”即可下載到該軟
36、件。EditPlus編輯軟件的安裝方法很簡單,解壓后自運(yùn)行。 使用EditPlus編輯、編譯、運(yùn)行Java程序 (b) EditPlus用戶工具的配置打開 EditPlus 編輯軟件,單擊“工具”/“配置用戶工具”菜單,將打開的“參數(shù)設(shè)置”窗口,在打開的“參數(shù)選擇”窗口中,單擊“組名稱”按鈕,確定工具組的名稱。單擊“添加”按鈕,從彈出的快捷菜單中選擇“應(yīng)用程序”命令。在“菜單文本”欄中輸入“編譯”文字,在“命令”欄中輸入或通過文件夾選擇 javac.exe文件的路徑,在“參數(shù)”欄選擇“文件名稱”,在“初始目錄”欄輸入Java程序所在的路徑,選中“捕獲輸出”,單擊“確定”按鈕,注意,“命令”、“
37、參數(shù)”和“初始目錄”可以通過單擊編輯欄后面的按鈕在彈出的窗口中選擇實(shí)現(xiàn)輸入。同樣的方法可以設(shè)置“運(yùn)行”工具。 使用EditPlus編輯、編譯、運(yùn)行Java程序 (c) 使用EditPlus編輯Java程序運(yùn)行EditPlus,選擇路徑“E:javabook”,在左下角顯示的文件中選中“Hello.java”程序, (d) 使用EditPlus編譯與運(yùn)行Java程序單擊“工具”/“編譯”菜單,就開始對編寫的程序進(jìn)行編譯處理,編譯通過后,可在右下方窗口看到編譯結(jié)果。如果程序有問題,可在右下方窗口中看到提示。編譯成功后,單擊“工具”/“運(yùn)行”菜單,就開始運(yùn)行剛通過編譯的程序,可在右下方窗口看到運(yùn)行結(jié)
38、果。 Java Applet程序運(yùn)行環(huán)境配置 Java虛擬機(jī)與Internet瀏覽器的配置為了在瀏覽器中正常瀏覽Java程序,需要檢查兩個(gè)方面的配置,一是要選擇Java(TM)缺省瀏覽器,二是需要打開瀏覽器缺省配置下禁止的Java功能。(a) 選擇Java(TM)缺省瀏覽器Java(TM)軟件中涉及Web交互的部分。它包括Java虛擬機(jī)和許多其它內(nèi)容。有了它可以盡情享受Internet提供的最佳內(nèi)容,包括游戲、體育、聊天、電子郵件、藝術(shù)、財(cái)務(wù)工具等等。在“控制面板”窗口雙擊圖標(biāo),打開“Java(TM)Plug-in控制面板”對話框,選擇“瀏覽器”選項(xiàng),選中“Microsoft Internet
39、 Explorer”復(fù)選框,此選擇意味著選擇“Microsoft Internet Explorer”作為JavaApplet程序運(yùn)行時(shí)缺省瀏覽器,單擊“應(yīng)用”按鈕即可完成配置。 Java Applet程序運(yùn)行環(huán)境配置(b) 打開瀏覽器Java的功能打開一個(gè)IE窗口,在瀏覽器菜單欄單擊“工具”/“Internet選項(xiàng)”命令,打開“Internet選項(xiàng)”對話框,選擇“高級”選項(xiàng)卡,選取“Java(sun)”下的單選框,選取“Microsoft VM”下的第 一個(gè)選項(xiàng)“啟用JavaJIT 編譯器”,選擇“安全”選項(xiàng)卡,單擊“自定義級別”按鈕,將打開“安全設(shè)置”對話框,在“安全設(shè)置”對話框中把“Mi
40、crosoft VM”中的Java權(quán)限設(shè)置為“安全等級-中”;把“腳本” 中的“JavaApplet程序腳本”設(shè)置為“啟用”和“活動腳本”設(shè)置為“啟用”。完成上面操作后,關(guān)閉瀏覽器再重新打開即可在瀏覽器中正常瀏覽JavaApplet程序。 編寫、運(yùn)行Java Applet程序(a) 編輯、編譯Java Applet源程序在EditPlus中,輸入下面的程序代碼,import java.applet.Applet;import java.awt.Graphics; public class HelloWorldApplet extends Applet public void paint(Gra
41、phics g) g.drawString(Hello World!,0,50); 然后存盤退出。單擊“工具”/“編譯”菜單,可在右下方窗口看到編譯結(jié)果。編譯成功后,將生成一個(gè)名為HelloWorldApplet.class的文件。 編寫、運(yùn)行Java Applet程序(b) 編輯包容JavaApplet程序的HTML文件由于JavaApplet程序是不能直接使用命令行來運(yùn)行的,它們是嵌入到網(wǎng)頁中的,要使用瀏覽器才能夠運(yùn)行,而瀏覽器是無法直接執(zhí)行JavaApplet程序的。這時(shí)就必須通過HTML文件來告訴瀏覽器執(zhí)行JavaApplet程序。在HTML文件中嵌入JavaApplet程序,應(yīng)使用標(biāo)
42、志,這個(gè)標(biāo)志包含幾個(gè)參數(shù):CODE:用來指出要嵌入的JavaApplet程序名稱,是編譯后的類文件名;WIDTH:用來指定JavaApplet程序的寬度;HEIGHT:用來指定JavaApplet程序的高度。注意,使用Java編程,Java源程序文件的名字應(yīng)與類名一致,但包含小應(yīng)用程序的HTML文件則無需與其一致,此處取名一致。 編寫、運(yùn)行Java Applet程序(c) 運(yùn)行JavaApplet程序可以通過兩種方法來運(yùn)行JavaApplet程序:一種方法是使用支持Java的瀏覽器(如微軟的IE、還用Netscape的Navigator),另一種方法是使用Java的小應(yīng)用程序?yàn)g覽器Applet
43、Viewer。 第一種方法:首先打開IE瀏覽器,在地址欄上輸入“E:javabookHelloWorldApplet.html”,將看到這個(gè)小應(yīng)用程序的輸出結(jié)果。第二種方法:利用AppletViewer命令,該命令主要用來測試Applet程序,使用該命令能夠?qū)崟r(shí)反映Applet程序的變化。使用AppletViewer命令不需要引入復(fù)雜的HTML代碼,只需編寫如下代碼即可。 在MS-DOS中輸入“AppletViewer HelloWorldApplet.HTML”即可。Java程序設(shè)計(jì)基礎(chǔ)與實(shí)踐 第2章 Java語言基礎(chǔ)本章要點(diǎn) Java數(shù)據(jù)類型與運(yùn)算符 Java注釋語句 Java分支程序設(shè)計(jì)
44、 Java循環(huán)程序設(shè)計(jì) Java數(shù)組 Java字符串?dāng)?shù)據(jù)類型與運(yùn)算符 數(shù)據(jù)類型Java語言是一種嚴(yán)格的“類型化”語言。這意味著每個(gè)變量都必須有一個(gè)聲明好的數(shù)據(jù)類型。Java語言提供了8種基本數(shù)據(jù)類型 :字節(jié)型byte、短整型short、整型int、長整型long、單精度浮點(diǎn)型float、雙精度浮點(diǎn)型double、字符型char、邏輯類型booleanJava是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它為用戶提供的復(fù)合數(shù)據(jù)類型包括數(shù)組、類和接口等 類型之間的轉(zhuǎn)換 自動類型轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換 運(yùn)算符注釋語句 單行注釋-/ 多行注釋-“/*/” 文檔注釋-“/*/” 例如:在E:javabook中創(chuàng)建一個(gè)First
45、.java文件,其代碼如下: /* *First.java *這是一個(gè)簡單的Java應(yīng)用程序 */ public class First/*public修飾的類為主類,類名和文件名保持一致*/ /主類中要包含main()方法 public static void main(String args) /方法體 注釋語句(續(xù))使用javadoc命令可以獲取文檔注釋信息,并且生成相應(yīng)的API文檔。Javadoc命令用法如下:javadoc 選項(xiàng) 軟件包名稱 源文件 file例如,在E:javabook中新建一文件夾Test,以First.java為例,將其生成的API文檔存放在Test文件夾中,命令
46、如下:javadoc d Test First.java運(yùn)行界面如圖2.1所示。 生成的API文檔如圖2.2所示。其中index.html是生成的文檔首頁。注釋語句(續(xù))圖2.1執(zhí)行javadoc的運(yùn)行界面注釋語句(續(xù))圖 2.2 生成的API文檔分支程序設(shè)計(jì) 所謂分支語句就是對語句中不同條件的值進(jìn)行判斷,進(jìn)而根據(jù)不同的條件執(zhí)行不同的語句。分支語句共有兩種:if語句和switch語句 分支程序設(shè)計(jì)- if條件語句 if語句的語法格式:if(條件1)功能代碼1;else if(條件2)功能代碼2;else if(條件3)功能代碼3;else功能代碼;分支程序設(shè)計(jì)-switch語句 switch語
47、句的語法格式:switch(表達(dá)式)case 值1:功能代碼1; break; case 值2:功能代碼2; break; default:功能代碼1;break; 循環(huán)程序設(shè)計(jì) 循環(huán)就是反復(fù)執(zhí)行一段代碼,直到滿足結(jié)束條件。循環(huán)語句共有while語句、do-while語句和for語句三種。 循環(huán)程序設(shè)計(jì)- while語句 while語句是Java最基本的循環(huán)語句,其語法格式如下:while(條件表達(dá)式) / 循環(huán)體 循環(huán)程序設(shè)計(jì) -do-while 循環(huán) do-while 循環(huán)語句語法格式如下:do / 循環(huán)體 while (條件表達(dá)式); 循環(huán)程序設(shè)計(jì) -for 循環(huán) for 循環(huán)語句的通用
48、格式如下:for(初始化語句;循環(huán)條件;迭代語句) 語句序列三種循環(huán)語句while循環(huán)語句的特點(diǎn)是“先判斷、后執(zhí)行”,循環(huán)體有可能執(zhí)行0次;do-while循環(huán)語句的特點(diǎn)是“先執(zhí)行,后判斷”,循環(huán)體至少要執(zhí)行1次。while語句和for語句在循環(huán)語句中都屬于“先判斷再循環(huán)”的結(jié)構(gòu),在實(shí)際使用時(shí)while語句和for語句之間可以很方便的進(jìn)行替換。循環(huán)程序設(shè)計(jì) -跳轉(zhuǎn)語句 continuecontinue語句可以終止一次循環(huán)。如果在某次循環(huán)體的執(zhí)行中執(zhí)行了continue語句,那么就不再執(zhí)行本次循環(huán)中continue語句后面的語句,退出本次循環(huán)而直接進(jìn)行下一次循環(huán)。 breakbreak語句可以終
49、止循環(huán)或其他控制結(jié)構(gòu)。在switch語句中,break語句可以用來終止一個(gè)語句序列;在循環(huán)語句中,break語句可以用來退出一個(gè)循環(huán)。 returnreturn語句可以從一個(gè)方法返回,并把控制權(quán)交給調(diào)用它的語句。return語句通常被放在方法的最后,用于退出當(dāng)前方法并返回一個(gè)變量或表達(dá)式的值。語法格式為:return 變量或表達(dá)式的值; Java數(shù)組-一維數(shù)組 一維數(shù)組的聲明 聲明一維數(shù)組的格式為:type arrayName; type arrayName; 其中,類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡單類型和復(fù)合類型。 Java數(shù)組-一維數(shù)組 一維數(shù)組的初始化 聲明數(shù)組僅僅
50、是給出數(shù)組名字和元素的數(shù)據(jù)類型,要想使用數(shù)組還必須為它分配內(nèi)存空間、賦初值。數(shù)組的初始化分為靜態(tài)初始化和動態(tài)初始化兩種。 靜態(tài)初始化 靜態(tài)初始化是在定義數(shù)組的同時(shí)對數(shù)組元素進(jìn)行初始化,這種方式通常在數(shù)組元素個(gè)數(shù)較少的情況下使用動態(tài)初始化 使用動態(tài)初始化方法時(shí),需要使用new關(guān)鍵字來為數(shù)組分配空間。格式為:數(shù)組名字=new 數(shù)組元素的類型數(shù)組元素的個(gè)數(shù);Java數(shù)組-一維數(shù)組 一維數(shù)組元素的引用 一維數(shù)組元素的引用方式為: arrayNameindex 其中,index為數(shù)組下標(biāo),它可以為整型常數(shù)或表達(dá)式,下標(biāo)從0開始。 Java數(shù)組-多維數(shù)組Java語言中,多維數(shù)組被看作數(shù)組的數(shù)組。下面以二維
51、數(shù)組為例介紹多維數(shù)組的定義、初始化和元素的引用。 二維數(shù)組的聲明聲明二維數(shù)組的格式為:type arrayName ; type arrayName; 二維數(shù)組的初始化 二維數(shù)組的初始化同樣分為靜態(tài)初始化和動態(tài)初始化兩種。靜態(tài)初始化 靜態(tài)初始化是在定義數(shù)組的同時(shí)就為數(shù)組分配了內(nèi)存空間。 Java數(shù)組-多維數(shù)組動態(tài)初始化 對于二維數(shù)組的動態(tài)初始化,可以有兩種方法。直接為每一維分配空間格式如下: arrayName = new typelen1len2; 上面的定義中配置了len1行l(wèi)en2列的二維數(shù)組對象Java數(shù)組-多維數(shù)組從最高維開始,分別為每一維分配空間 int a ;/聲明一個(gè)二維整型數(shù)
52、組a = new int2 ; /該二維數(shù)組由2個(gè)一維整型數(shù)組組成a0 = new int3; /第1個(gè)一維數(shù)組由3個(gè)整數(shù)組成a1 = new int5;/第2個(gè)一維數(shù)組由5個(gè)整數(shù)組成 二維數(shù)組元素的引用 對二維數(shù)組中的每個(gè)元素,引用格式為:arrayNameindex1index2index1與index2為下標(biāo),這個(gè)下標(biāo)與一維數(shù)組一樣,可以是常量、變量或表達(dá)式。 Java數(shù)組-多維數(shù)組 數(shù)組中常用屬性和方法 數(shù)組中常用屬性在數(shù)組的應(yīng)用中經(jīng)常用到數(shù)組的長度,表示一維數(shù)組長度(即元素的個(gè)數(shù))的格式為:數(shù)組.length。lengh屬性是數(shù)組中唯一的一個(gè)屬性,length屬性也不存在于API中,
53、而是JVM自動給加上去的。Java數(shù)組-多維數(shù)組 數(shù)組中常用方法get(Objectarray, intindex) getBoolean(Objectarray, intindex)getByte(Objectarray, intindex)getChar(Objectarray, intindex)getDouble(Objectarray, intindex)getFloat(Objectarray, intindex)getInt(Objectarray, intindex)getLength(Objectarray) getLong(Objectarray, intindex)get
54、Short(Objectarray, intindex)Java數(shù)組-多維數(shù)組 數(shù)組中常用方法(續(xù))set(Objectarray, intindex, Objectvalue)setBoolean(Objectarray, intindex, booleanz)setByte(Objectarray, intindex, byteb) setChar(Objectarray, intindex, charc)setDouble(Objectarray, intindex, doubled) setFloat(Objectarray, intindex, floatf)setInt(Objec
55、tarray, intindex, inti)setLong(Objectarray, intindex, longl)setShort(Objectarray, intindex, shorts)Java字符串 字符串常量字符串常量是用雙引號括起來的一串字符。 例如:“Hello World!” 字符串變量的聲明String s; 字符串變量的創(chuàng)建Java語言中,把字符串變量作為對象來處理。Srting類有幾種常見的方法可以將聲明和創(chuàng)建一步完成:String();/初始化一個(gè)新創(chuàng)建的String對象,它表示一個(gè)空字符串String( char chars ); /用一個(gè)字符數(shù)組創(chuàng)建一個(gè)字符串
56、對象String( char chars ,int startIndex,int numChars ); /*提取字符數(shù)組chars中startIndex開始numChars個(gè)字符創(chuàng)建一個(gè)字符串對象, */String(Stringoriginal);/*初始化一個(gè)新創(chuàng)建的String對象,表示一個(gè)與original相同的字符串即創(chuàng)建一個(gè)字符串副本*/ 字符串的常用方法length()charAt(int index)indexOf(int ch) lastIndexOf(in ch)indexOf(String str) lastIndexOf(String str)indexOf(int
57、ch,int fromIndex) lastIndexOf(in ch,int fromIndex)indexOf(String str,int fromIndex) lastIndexOf(String str,int fromIndex)getchars(int srcbegin,int end,char buf,int dstbegin)getBytes(int srcbegin,int srcEnd,byte buf,int dstbegin)contat(String str)replace(char oldChar,char newChar)substring(int beginI
58、ndex)substring(int beginIndex,int endIndex)toLowerCase() toUpperCase()equals(ObjectanObject) equalsIgnoreCase(StringanotherString)另外,可以將數(shù)字串轉(zhuǎn)換為整數(shù)和雙精度數(shù),方法格式如下:Integer.parseInt(String);/將數(shù)字字符串轉(zhuǎn)化為整型Double.parseDouble(String);/ 將數(shù)字字符串轉(zhuǎn)化為浮點(diǎn)型 本章小結(jié) Java語言是一種嚴(yán)格的“類型化”語言。這意味著每個(gè)變量都必須有一個(gè)聲明好的數(shù)據(jù)類型。Java語言提供了字節(jié)型、短整型
59、、整型、長整型、單精度浮點(diǎn)型、雙精度浮點(diǎn)型、字符型和邏輯類型8種基本數(shù)據(jù)類型,語言和數(shù)組、類和接口等復(fù)合數(shù)據(jù)。Java編程時(shí)有時(shí)需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,數(shù)據(jù)類型之間的轉(zhuǎn)換有自動類型轉(zhuǎn)換和強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換。要實(shí)現(xiàn)兩種數(shù)據(jù)類型的自動轉(zhuǎn)換,必須同時(shí)滿足兩個(gè)條件,一是兩種數(shù)據(jù)類型彼此兼容,二是目標(biāo)數(shù)據(jù)類型的取值范圍要大于源數(shù)據(jù)類型。能進(jìn)行自動轉(zhuǎn)換的數(shù)據(jù)類型及轉(zhuǎn)換規(guī)則如下:byte-short-char-int-long-float-double按照箭頭所示方向,左側(cè)的數(shù)據(jù)類型數(shù)據(jù)可以自動轉(zhuǎn)換賦值給右側(cè)的數(shù)據(jù)類型變量,但反之,將右側(cè)的數(shù)據(jù)類型數(shù)據(jù)賦值給左側(cè)的數(shù)據(jù)類型變量必須經(jīng)過強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換的
60、轉(zhuǎn)換格式為:(目標(biāo)類型)變量名或表達(dá)式強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換后可能會丟失一部分?jǐn)?shù)據(jù)。本章小結(jié)(續(xù))Java語言提供了()、!、+(正)、-(負(fù)) 、+、-、*、/、%、+(加) - (減)、=、instanceof、=、!=、&(按位與)、|、&、|、?:、=、+=、-=、*=、/=、%=、|=、=、=、=、=等運(yùn)算符。Java中可以采用單行注釋、多行注釋和生成幫助文檔的注釋三種注釋方式。Java分支語句共有if語句和switch語句兩種。Java循環(huán)語句共有while語句、do-while語句和for語句三種。Java中支持break語句、continue語句和return語句三種跳轉(zhuǎn)語句。 本章
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度汽車租賃與停車位租賃聯(lián)營合同4篇
- 二零二五年度門樓不銹鋼門供應(yīng)合同4篇
- 二零二五版企業(yè)人力資源規(guī)劃與管理咨詢服務(wù)合同4篇
- 2025年度旅游景區(qū)租賃協(xié)議延期及旅游服務(wù)合同4篇
- 2025年車輛交強(qiáng)險(xiǎn)合同
- 2025年人才競業(yè)禁止合同
- 2025年出版合同介紹
- 2025年度內(nèi)外墻抹灰施工與綠色施工技術(shù)規(guī)范合同3篇
- 2025年醫(yī)療保險(xiǎn)索賠合同
- 2025年度個(gè)人房貸合同補(bǔ)充協(xié)議(提前還款)4篇
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 計(jì)劃合同部部長述職報(bào)告范文
- 人教版高一地理必修一期末試卷
- GJB9001C質(zhì)量管理體系要求-培訓(xùn)專題培訓(xùn)課件
- 二手車車主寄售協(xié)議書范文范本
- 窗簾采購?fù)稑?biāo)方案(技術(shù)方案)
- 基于學(xué)習(xí)任務(wù)群的小學(xué)語文單元整體教學(xué)設(shè)計(jì)策略的探究
- 生活用房設(shè)施施工方案模板
- 上海市楊浦區(qū)2022屆初三中考二模英語試卷+答案
- 高中英語原版小說整書閱讀指導(dǎo)《奇跡男孩》(wonder)-Part one 講義
- GB/T 9755-2001合成樹脂乳液外墻涂料
評論
0/150
提交評論