Java基礎(chǔ)實(shí)踐教程-Java編程基礎(chǔ)_第1頁(yè)
Java基礎(chǔ)實(shí)踐教程-Java編程基礎(chǔ)_第2頁(yè)
Java基礎(chǔ)實(shí)踐教程-Java編程基礎(chǔ)_第3頁(yè)
Java基礎(chǔ)實(shí)踐教程-Java編程基礎(chǔ)_第4頁(yè)
Java基礎(chǔ)實(shí)踐教程-Java編程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩275頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2.1

Java代碼基本格式2.2變量與常量2.3運(yùn)算符和表達(dá)式2.4條件語(yǔ)句2.5循環(huán)語(yǔ)句2.6數(shù)組2.7方法2.1

Java代碼基本格式2.1.1Java程序的最小單位類是構(gòu)成Java程序的最小單位,Java程序代碼必須在類中才能運(yùn)行,類的定義格式如下:其中,修飾符和class都是Java語(yǔ)言定義的關(guān)鍵字。一個(gè)Java程序可以由很多個(gè)類組成,其中必須要有一個(gè)類作為程序的起始類,這個(gè)類稱為主類。主類與其他類的區(qū)別在于,主類中定義了主方法(main方法),而其他類沒有。主方法作為一個(gè)Java程序的入口,程序在啟動(dòng)的時(shí)候首先執(zhí)行的就是主方法里面的代碼。在Java語(yǔ)言中,類里面可以編寫單句代碼、代碼塊、方法,甚至嵌套另外一個(gè)類。但要求最外層類的大括號(hào)之外不可以再編寫代碼,也就是代碼不可以脫離Java語(yǔ)言的最小單位類而單獨(dú)存在。2.1.2Java功能執(zhí)行語(yǔ)句的格式要求Java代碼從功能上可分為結(jié)構(gòu)定義語(yǔ)句和功能執(zhí)行語(yǔ)句。其中,結(jié)構(gòu)定義語(yǔ)句用以聲明一個(gè)類或者方法,功能執(zhí)行語(yǔ)句用來實(shí)現(xiàn)賦值、運(yùn)算等具體的功能。例如,下面這段代碼是結(jié)構(gòu)定義語(yǔ)句,它定義了一個(gè)主方法,它的功能是在屏幕上打印輸出“我是結(jié)構(gòu)定義語(yǔ)句,聲明了一個(gè)主方法”。下面各句代碼均是功能執(zhí)行語(yǔ)句。在編程時(shí),結(jié)構(gòu)定義語(yǔ)句末尾不用加分號(hào),功能執(zhí)行語(yǔ)句末尾必須加英文的分號(hào)(;)。同時(shí),為了方便閱讀代碼,通常每一句功能執(zhí)行語(yǔ)句單獨(dú)占一行。2.1.3標(biāo)識(shí)符和關(guān)鍵字標(biāo)識(shí)符可以由數(shù)字、字母、下畫線(_)和美元符號(hào)($)組成,開頭不能是數(shù)字。例如,下面的標(biāo)識(shí)符都是合法的。同時(shí),自定義的標(biāo)識(shí)符不能是Java語(yǔ)言中的關(guān)鍵字。關(guān)鍵字是編程語(yǔ)言中事先定義好并具有特殊功能的單詞。Java關(guān)鍵字均使用小寫字母表示,按其用途可劃分為以下幾類:(1)用于描述和判斷數(shù)據(jù)類型的關(guān)鍵字,包括boolean、byte、char、double、float、int、long、new、short、void和instanceof;(2)用于控制語(yǔ)句執(zhí)行或?qū)崿F(xiàn)一定代碼邏輯的關(guān)鍵字,包括break、case、catch、continue、default、do、else、for、if、return、switch、try、while、finally、throw、this和super;(3)用于修飾變量、代碼塊、方法、類及接口的關(guān)鍵字,包括abstract、final、native、private、protected、public、static、synchronized、transient和volatile;(4)用于聲明方法、類、接口、包和異常的關(guān)鍵字,包括class、extends、implements、interface、package、import和throws;(5)Java保留的沒有意義的關(guān)鍵字,包括future、generic、operator、outer、rest和var。此外,Java語(yǔ)言還有3個(gè)保留字:goto、const和null。它們不是關(guān)鍵字,而是文字,包含了Java語(yǔ)言定義的值。它們也不可以作為標(biāo)識(shí)符使用。為了增強(qiáng)代碼的可讀性,在定義標(biāo)識(shí)符的時(shí)候建議遵循表2-1-1所示的規(guī)則。此外,在編程時(shí)盡可能使用有意義的英文單詞來定義標(biāo)識(shí)符。2.1.4包名包(package)機(jī)制。包提供了類的多層命名空間,它允許將類組合成較小的單元(類似文件夾),基本上隱藏了類。包允許在更廣泛的范圍內(nèi)保護(hù)類、數(shù)據(jù)和方法,并避免了類的命名沖突,方便了類文件管理。因此,在使用集成開發(fā)環(huán)境編寫Java代碼時(shí),盡可能地在項(xiàng)目中使用包。Java語(yǔ)言中使用關(guān)鍵字package定義包。package語(yǔ)句應(yīng)該放在Java文件的第一行,在每個(gè)Java文件中只能有一個(gè)包定義語(yǔ)句。如果在Java文件中沒有定義包,那么它將會(huì)被放進(jìn)一個(gè)無名的包中,也稱為默認(rèn)包。這種寫法是不推薦的。包的定義格式如下:Java包的命名規(guī)則如下:(1)包名全部用小寫字母,多個(gè)單詞組成的包名也全部小寫。(2)如果包名包含多個(gè)層次,每個(gè)層次用“.”分割。(3)包名一般由倒置的域名開頭,比如com.baidu,不要用www。(4)自定義包不能放在Java程序開頭,以區(qū)分官方定義的系統(tǒng)包。當(dāng)在Java文件中使用到其他Java包時(shí),就需要將其導(dǎo)入到當(dāng)前程序中,以便JVM知道在哪里找到它。導(dǎo)入包用到了import關(guān)鍵字,當(dāng)導(dǎo)入單個(gè)類時(shí),它的語(yǔ)法格式為:這條語(yǔ)句應(yīng)該放在package語(yǔ)句之后,類定義之前。若想導(dǎo)入某個(gè)包中的所有類,則使用通配符“*”,其語(yǔ)法格式為:2.1.5Java語(yǔ)言中的注釋為了提高代碼的可讀性,在編寫程序時(shí)可以為代碼添加注釋。注釋是對(duì)程序代碼的解釋說明,編譯器將Java代碼編譯成字節(jié)碼時(shí)會(huì)自動(dòng)忽略這些注釋語(yǔ)句。Java語(yǔ)言中的注釋分為3種類型:?jiǎn)涡凶⑨尅⒍嘈凶⑨尯臀臋n注釋。單行注釋是注釋語(yǔ)句只有一行,多用于對(duì)某一行代碼進(jìn)行解釋說明,用符號(hào)“//”表示,“//”后面是注釋語(yǔ)句。多行注釋是注釋的內(nèi)容有多行,用符號(hào)“/*”開頭、符號(hào)“*/”結(jié)尾。單行注釋和多行注釋有時(shí)候也用于代碼調(diào)試。Eclipse軟件中,可以使用快捷鍵迅速地對(duì)代碼進(jìn)行注釋和取消注釋。方法為:選中需要注釋/取消注釋的代碼段,然后按下組合鍵ctrl+/即可。文檔注釋是以“/**”開頭,以“*/”結(jié)尾,主要用于對(duì)一段代碼概括性的解釋說明,可以使用javadoc命令工具將文檔注釋提取出來生成幫助文檔。2.2變量與常量2.2.1Java語(yǔ)言中的常量Java語(yǔ)言的常量按照定義方式可分為字面常量和符號(hào)常量。它是通過數(shù)據(jù)直接表示的一個(gè)數(shù)字或一條文本。常量值通常用來參與運(yùn)算、打印輸出等。符號(hào)常量通常被籠統(tǒng)地稱為Java常量,它本質(zhì)上是使用了final關(guān)鍵字修飾的變量,因此也稱作final變量。符號(hào)常量需要在聲明的時(shí)候就對(duì)其進(jìn)行初始化,后續(xù)不可再對(duì)其進(jìn)行修改。1.整型常量值整型常量值就是整數(shù)數(shù)據(jù)。整數(shù)在編程中常用二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制表示,如表2-2-1所示。表2-2-2是二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制的對(duì)照表。不同進(jìn)制之間可以相互轉(zhuǎn)換,轉(zhuǎn)換時(shí)保持?jǐn)?shù)據(jù)的正負(fù)符號(hào)不變,具體的轉(zhuǎn)換規(guī)則如下:(1)R進(jìn)制(R是正整數(shù))轉(zhuǎn)換成十進(jìn)制用按權(quán)展開法。(2)十進(jìn)制數(shù)轉(zhuǎn)換成R進(jìn)制數(shù)除R取余數(shù),直到商為0,得到的余數(shù)即為R進(jìn)數(shù)各位的數(shù)碼,余數(shù)從右到左排列(反序排列)。(3)十六進(jìn)制轉(zhuǎn)化成二進(jìn)制,每一位十六進(jìn)制數(shù)對(duì)應(yīng)二進(jìn)制的四位,參考進(jìn)制對(duì)照表2-2-2逐位展開,然后直接按順序拼接即可。(4)二進(jìn)制轉(zhuǎn)換成十六進(jìn)制,將二進(jìn)制數(shù)整數(shù)從右向左每四位組成一組,不足四位則高位補(bǔ)零,參考對(duì)照表2-2-2進(jìn)行轉(zhuǎn)換。2.浮點(diǎn)數(shù)常量值浮點(diǎn)數(shù)常量值就是數(shù)學(xué)中的小數(shù),按照表示精度和范圍不同可分為單精度浮點(diǎn)數(shù)(float)和雙精度浮點(diǎn)數(shù)(double)。其中,float常量值以f或F結(jié)尾,double常量值以d或者D結(jié)尾。若一個(gè)小數(shù)后面沒有寫f或d,則默認(rèn)是double類型的小數(shù)。浮點(diǎn)數(shù)常量值也可以用指數(shù)形式來表示。3.字符常量值字符常量值是用一對(duì)英文半角格式的單引號(hào)('')引起來的字符,它可以是英文字母、數(shù)字、標(biāo)點(diǎn)符號(hào),以及由轉(zhuǎn)義序列來表示的特殊字符、漢字等。4.字符串常量值字符串常量值是一串連續(xù)的字符,用英文半角格式的雙引號(hào)("")括起來。5.布爾常量值布爾常量值只有兩種值,即true和false,分別代表邏輯真和邏輯假。6.null常量值null常量值只有一個(gè)值null,它是所有引用變量類型的默認(rèn)值,表示引用為空。引用變量存儲(chǔ)的是一個(gè)內(nèi)存單位的地址,如果用null給引用變量賦值,則表示該引用變量中沒有存任何地址。2.2.2Java語(yǔ)言中的變量1.Java變量的數(shù)據(jù)類型變量是存儲(chǔ)數(shù)據(jù)的容器。一個(gè)程序在運(yùn)行期間可能需要存儲(chǔ)一些臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)通常會(huì)保存在內(nèi)存單元里。為了方便訪問臨時(shí)數(shù)據(jù),可以用標(biāo)識(shí)符來標(biāo)識(shí)內(nèi)存單元,這些標(biāo)識(shí)符就是變量。為了服務(wù)不同類型的數(shù)據(jù),Java語(yǔ)言提供了八種基本數(shù)據(jù)類型變量和三種引用數(shù)據(jù)類型變量,如圖2-2-1所示。八種基本數(shù)據(jù)類型所占的內(nèi)存空間大小和取值范圍如表2-2-3所示2.Java變量的定義和使用Java語(yǔ)言是一門強(qiáng)類型的編程語(yǔ)言,所有的變量必須先聲明后使用。變量的聲明格式如下:在聲明一個(gè)變量的同時(shí),也可以對(duì)變量進(jìn)行賦值;在同時(shí)聲明多個(gè)變量的時(shí)候,可以對(duì)部分變量或所有變量進(jìn)行賦值。若只聲明了變量,還沒有對(duì)變量進(jìn)行賦值,那么系統(tǒng)將使用該變量類型的默認(rèn)值來初始化這個(gè)變量。整型和浮點(diǎn)型變量的默認(rèn)值為0,字符型變量的默認(rèn)值為'\u0000'(空字符),布爾類型變量的默認(rèn)值為false,引用數(shù)據(jù)類型的默認(rèn)值是null。當(dāng)創(chuàng)建一個(gè)變量的時(shí)候,程序會(huì)為其分配一塊內(nèi)存單元,對(duì)變量賦值就是將數(shù)據(jù)存入該變量的內(nèi)存單元。在讀取變量時(shí),系統(tǒng)從變量的內(nèi)存單元讀取數(shù)據(jù)。Java變量定義以后并不是在所有地方都可以使用,每個(gè)變量都有自己的使用范圍,該范圍被稱為“變量的作用域”。在程序中,變量一定會(huì)被定義在某一對(duì)大括號(hào)中,該大括號(hào)所包括的代碼區(qū)域便是這個(gè)變量的作用域。在Java語(yǔ)言中,定義在方法體內(nèi)或形參列表中的變量是局部變量,直接定義在類大括號(hào)里面的變量為類的成員變量。3.基本數(shù)據(jù)類型轉(zhuǎn)換在程序設(shè)計(jì)中,通常會(huì)把數(shù)據(jù)賦值給對(duì)應(yīng)數(shù)據(jù)類型的變量進(jìn)行存儲(chǔ)和計(jì)算,但有時(shí)候需要將一種數(shù)據(jù)類型的數(shù)值賦值給不同數(shù)據(jù)類型的變量,或者將不同數(shù)據(jù)類型的變量放在一起進(jìn)行運(yùn)算,這個(gè)時(shí)候就需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。Java數(shù)據(jù)類型轉(zhuǎn)換包括兩種模式:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。其中,自動(dòng)類型轉(zhuǎn)換又稱為隱式類型轉(zhuǎn)換,強(qiáng)制類型轉(zhuǎn)換又稱為顯式類型轉(zhuǎn)換。Java基本數(shù)據(jù)類型和引用數(shù)據(jù)類型都可以進(jìn)行這兩種轉(zhuǎn)換。(1)自動(dòng)類型轉(zhuǎn)換。自動(dòng)類型轉(zhuǎn)換,顧名思義,就是在進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換時(shí)不需要編程人員對(duì)其進(jìn)行聲明和設(shè)置,而是由編譯器自動(dòng)實(shí)現(xiàn)的。自動(dòng)類型轉(zhuǎn)換必須同時(shí)滿足兩個(gè)條件:“數(shù)據(jù)兼容”和“以小轉(zhuǎn)大”,即兩種數(shù)據(jù)類型彼此兼容,同時(shí)滿足目標(biāo)數(shù)據(jù)類型的取值范圍大于原數(shù)據(jù)類型的取值范圍。這里面的數(shù)據(jù)包含了Java常量、常數(shù)和變量。正是由于這兩個(gè)條件的限制,使得自動(dòng)類型轉(zhuǎn)換不存在精度損失??梢赃M(jìn)行自動(dòng)類型轉(zhuǎn)換的情況如下:byte→short→int→long→float→doublechar→int→long→float→double具體而言,byte類型數(shù)據(jù)可以自動(dòng)轉(zhuǎn)換為short、int、long、float和double類型的變量;short、char類型的變量可以自動(dòng)轉(zhuǎn)換為int、long、float和double類型的變量;int類型的變量可以自動(dòng)轉(zhuǎn)換為long、float和double類型的變量,以此類推。反之則不能實(shí)現(xiàn)自動(dòng)類型轉(zhuǎn)換,否則編譯和運(yùn)行時(shí)會(huì)報(bào)錯(cuò)。尤其注意char與byte、char與short之間不能實(shí)現(xiàn)自動(dòng)類型轉(zhuǎn)換。此外,boolean與其他基本數(shù)據(jù)類型之間不可以實(shí)現(xiàn)自動(dòng)類型轉(zhuǎn)換,因?yàn)閿?shù)據(jù)類型彼此不兼容。(2)強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換是對(duì)自動(dòng)類型轉(zhuǎn)換的補(bǔ)充。當(dāng)不能實(shí)現(xiàn)自動(dòng)類型轉(zhuǎn)換,即“類型兼容”或“以小轉(zhuǎn)大”不能同時(shí)滿足時(shí),就需要編程人員顯式地聲明源數(shù)據(jù)要轉(zhuǎn)換成哪種數(shù)據(jù)類型。此時(shí)有可能會(huì)造成數(shù)據(jù)精度的損失。強(qiáng)制類型轉(zhuǎn)換的格式為:將整型常數(shù)賦值給字節(jié)變量,以及整型變量賦值給字符變量,雖然它們的數(shù)據(jù)類型兼容,但均屬于數(shù)據(jù)空間上的“以大賦小”,不能直接自動(dòng)類型轉(zhuǎn)換,需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。在強(qiáng)制類型轉(zhuǎn)換過程中可能會(huì)發(fā)生精度的損失。大小寫英文字母、標(biāo)點(diǎn)符號(hào)、阿拉伯?dāng)?shù)字、數(shù)學(xué)符號(hào)和控制字符等常用的128個(gè)字符在內(nèi)存中存儲(chǔ)的時(shí)候都各自有唯一的整型數(shù)值與之對(duì)應(yīng)。這種對(duì)應(yīng)關(guān)系其實(shí)就是美國(guó)信息交換標(biāo)準(zhǔn)代碼(AmericanStandardCodeforInformationInterchange,ASCII)。在ASCII中,0~9、'a'~'z'和'A'~'Z'各自的編碼值是連續(xù)的。在用這128個(gè)字符給某個(gè)char變量賦值時(shí),可以直接用字符常數(shù)賦值,也可以使用其ASCII值來賦值,兩者是等效的。2.3運(yùn)算符和表達(dá)式2.3.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符就是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除等基本計(jì)算操作,計(jì)算結(jié)果的數(shù)據(jù)類型與操作數(shù)的數(shù)據(jù)類型保持一致。當(dāng)兩個(gè)操作數(shù)(雙目運(yùn)算符)的數(shù)據(jù)類型不一致時(shí),操作數(shù)需要進(jìn)行類型轉(zhuǎn)換,在滿足兩個(gè)操作數(shù)數(shù)據(jù)類型一致之后再運(yùn)算。如果操作數(shù)的類型不能夠轉(zhuǎn)換成同一種數(shù)據(jù)類型,那么就不能進(jìn)行算術(shù)運(yùn)算,編譯不通過。Java語(yǔ)言中的所有算術(shù)運(yùn)算符如表2-3-1所示,其中,inta=10,intb=3。算術(shù)運(yùn)算符在使用過程中尤其要注意除運(yùn)算、自增和自減操作。(1)除運(yùn)算。當(dāng)除數(shù)與被除數(shù)是整型變量時(shí),計(jì)算結(jié)果也是整型變量,這與數(shù)學(xué)上的表示不一樣。如果希望計(jì)算結(jié)果與數(shù)學(xué)中的運(yùn)算保持一致,那么就需要先將操作數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù),然后再進(jìn)行運(yùn)算。(2)自增和自減操作。自增和自減運(yùn)算符均為單目運(yùn)算符,即操作數(shù)只有一個(gè)。當(dāng)自增和自減運(yùn)算符位于操作數(shù)之前時(shí),則先進(jìn)行自增或自減操作,然后再參與其他運(yùn)算;當(dāng)自增和自減運(yùn)算符位于操作數(shù)之后時(shí),則操作數(shù)先參與其他運(yùn)算,然后操作數(shù)自身再進(jìn)行自增或自減操作。2.3.2比較運(yùn)算符比較運(yùn)算符均為雙目運(yùn)算符,有兩個(gè)操作數(shù)參與。比較運(yùn)算符的作用是對(duì)兩個(gè)操作數(shù)進(jìn)行比較,比較結(jié)果是布爾類型的值(true或false)。Java語(yǔ)言中的所有比較運(yùn)算符如表2-3-2所示,其中,inta=10,intb=3。2.3.3位運(yùn)算符位運(yùn)算應(yīng)用于整數(shù)類型(int)、長(zhǎng)整型(long)、短整型(short)、字符型(char)和字節(jié)型(byte)等類型。位運(yùn)算符作用在所有的位上,并且按位運(yùn)算。Java語(yǔ)言中的所有位運(yùn)算符如表2-3-3所示,其中,bytea=60,byteb=13。用二進(jìn)制表示為a=0b00111100,b=0b00001101。位運(yùn)算是對(duì)操作數(shù)在計(jì)算機(jī)中存儲(chǔ)的二進(jìn)制進(jìn)行逐位運(yùn)算。在計(jì)算機(jī)系統(tǒng)中,為了硬件設(shè)計(jì)簡(jiǎn)單,且能夠?qū)崿F(xiàn)加法和減法的統(tǒng)一處理,數(shù)據(jù)一律采用補(bǔ)碼來表示和存儲(chǔ)。為了方便理解補(bǔ)碼的概念,二進(jìn)制數(shù)的表示方法又引入了原碼和反碼的概念。正數(shù)和負(fù)數(shù)的原碼計(jì)算規(guī)則都一樣,將數(shù)字按照正負(fù)的形式轉(zhuǎn)換為二進(jìn)制數(shù)即可得到,其中符號(hào)位體現(xiàn)在該類型數(shù)據(jù)的二進(jìn)制最高位,若該數(shù)為正,則最高位為0,反之為1,0的原碼為0。正數(shù)的原碼、反碼和補(bǔ)碼都相同。當(dāng)進(jìn)行位運(yùn)算時(shí),就是針對(duì)這個(gè)二進(jìn)制數(shù)逐位操作。負(fù)數(shù)的反碼、補(bǔ)碼與原碼不同,它們的計(jì)算規(guī)則為:反碼:將原碼除符號(hào)位全取反,即可得到反碼。補(bǔ)碼:反碼加一即可得到補(bǔ)碼。2.3.4邏輯運(yùn)算符邏輯運(yùn)算符用于對(duì)boolean類型的數(shù)據(jù)進(jìn)行邏輯運(yùn)算,結(jié)果也是boolean類型(true或false)。Java語(yǔ)言中的邏輯運(yùn)算符對(duì)應(yīng)數(shù)學(xué)中的“與”“或”“非”操作,其中,“非”運(yùn)算符是單目運(yùn)算符,“與”和“或”邏輯運(yùn)算符為雙目運(yùn)算符,它們的運(yùn)算規(guī)則如表2-3-4所示。2.3.5賦值運(yùn)算符賦值運(yùn)算符的作用就是將數(shù)據(jù)賦值給一個(gè)變量。賦值運(yùn)算符均為雙目運(yùn)算符。Java語(yǔ)言中所有的賦值運(yùn)算符如表2-3-5所示。2.3.6其他運(yùn)算符在Java語(yǔ)言中,除了上述運(yùn)算符之外還有條件運(yùn)算符“?:”,點(diǎn)操作符“.”,括號(hào)運(yùn)算符“()”,下標(biāo)運(yùn)算符“[]”和instanceof運(yùn)算符。括號(hào)運(yùn)算符“()”的作用等同于數(shù)學(xué)運(yùn)算中的小括號(hào)。條件運(yùn)算符是Java語(yǔ)言中唯一的三目運(yùn)算符,該運(yùn)算符的作用是通過判斷一個(gè)布爾表達(dá)式的值來決定哪個(gè)值應(yīng)該賦值給變量。它的表達(dá)式為:變量類型變量名=邏輯表達(dá)式?數(shù)值1:數(shù)值2。當(dāng)邏輯表達(dá)式的結(jié)果為true時(shí),將數(shù)值1賦值給變量,反之,將數(shù)值2賦值給變量。這里的數(shù)值也可以是一個(gè)運(yùn)算表達(dá)式。點(diǎn)操作符“.”主要用于對(duì)象調(diào)用成員。下標(biāo)運(yùn)算符“[]”用于數(shù)組訪問元素。instanceof運(yùn)算符用于檢查某個(gè)數(shù)據(jù)是否為指定類的對(duì)象。2.3.7運(yùn)算符的優(yōu)先級(jí)在數(shù)學(xué)運(yùn)算中,乘除運(yùn)算的優(yōu)先級(jí)要比加減高。同樣,當(dāng)程序中的運(yùn)算表達(dá)式包含多個(gè)運(yùn)算符時(shí),也需要明確哪個(gè)運(yùn)算符先計(jì)算,哪個(gè)后計(jì)算,也就是要指明運(yùn)算符的優(yōu)先級(jí)。表2-3-6中給出了Java運(yùn)算符的優(yōu)先級(jí)。2.4條件語(yǔ)句2.4.1if條件語(yǔ)句if條件語(yǔ)句,或稱if語(yǔ)句,使用到了if和else關(guān)鍵字。它有四種形式:?jiǎn)畏种f語(yǔ)句、雙分支if語(yǔ)句、多分支if語(yǔ)句和嵌套if語(yǔ)句。1.單分支if語(yǔ)句單分支if語(yǔ)句的語(yǔ)法格式為:其中,條件語(yǔ)句為邏輯表達(dá)式或者一個(gè)布爾類型數(shù)據(jù),它的值只可能是true或者false。當(dāng)條件語(yǔ)句的值為true時(shí)執(zhí)行大括號(hào)里面的代碼;反之則跳過這個(gè)大括號(hào),不執(zhí)行里面的代碼,繼續(xù)執(zhí)行大括號(hào)后面的代碼。若大括號(hào)里面的代碼只有一行,那么可以省略大括號(hào),編譯器會(huì)默認(rèn)將if(條件語(yǔ)句)的下一行代碼作為條件成立時(shí)的執(zhí)行語(yǔ)句。單分支if語(yǔ)句流程圖如圖2-4-1所示。2.雙分支if語(yǔ)句雙分支if語(yǔ)句用到了if和else關(guān)鍵字,也叫if...else語(yǔ)句。它的語(yǔ)法格式為:當(dāng)條件語(yǔ)句為真時(shí)執(zhí)行代碼塊1,反之執(zhí)行代碼塊2,然后程序繼續(xù)向下運(yùn)行。若代碼塊1只有一行代碼,那么包括代碼塊1的大括號(hào)可以省略。同樣,若代碼塊2只有一行代碼,那么包括代碼塊2的大括號(hào)也可以省略。雙分支if語(yǔ)句與單分支if語(yǔ)句相比最大的差別在于:雙分支if語(yǔ)句預(yù)定的兩個(gè)代碼塊總會(huì)執(zhí)行一個(gè),且只執(zhí)行一個(gè);而單分支if語(yǔ)句的代碼塊可能執(zhí)行,也可能不執(zhí)行。雙分支if語(yǔ)句流程圖如圖2-4-4所示。3.多分支if語(yǔ)句多分支if語(yǔ)句用到了if和else關(guān)鍵字,也叫if...elseif...else語(yǔ)句。它的語(yǔ)法格式為:當(dāng)?shù)谝粋€(gè)條件語(yǔ)句為真時(shí)執(zhí)行代碼塊1;若不成立則判斷第二個(gè)條件語(yǔ)句,若為真則執(zhí)行代碼塊2;程序依次進(jìn)行判斷,如果所有的條件語(yǔ)句均不成立,則執(zhí)行else大括號(hào)中的代碼。多分支if語(yǔ)句與雙分支if語(yǔ)句有些類似,它總會(huì)執(zhí)行其中的某一個(gè)代碼塊,且只執(zhí)行一個(gè)。多分支if語(yǔ)句代碼流程圖如圖2-4-7所示。4.嵌套if語(yǔ)句if語(yǔ)句在使用的時(shí)候可以嵌套,用法靈活。2.4.2switch條件語(yǔ)句switch條件語(yǔ)句的應(yīng)用范圍僅限于對(duì)某個(gè)表達(dá)式的值作出判斷,從而決定程序執(zhí)行哪一段代碼,switch條件語(yǔ)句的判斷條件只能是比較是否相等。switch條件語(yǔ)句的格式如下:當(dāng)case語(yǔ)句滿足條件時(shí),若沒有break關(guān)鍵字,則程序繼續(xù)在switch代碼塊中順序執(zhí)行,直到遇到break或執(zhí)行完畢。由此可知,break語(yǔ)句用來跳出整個(gè)switch語(yǔ)句,尤其在case語(yǔ)句之后不可或缺。1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.1Java語(yǔ)言體系1.1.2Java語(yǔ)言的特點(diǎn)Java語(yǔ)言的主要特點(diǎn)有以下七個(gè)方面。1.簡(jiǎn)單性Java語(yǔ)言繼承了很多C與C++語(yǔ)言的語(yǔ)法結(jié)構(gòu)和特點(diǎn),同時(shí)還丟棄了C++語(yǔ)言中那些使用頻次低、不好理解的特性,使得編程更加簡(jiǎn)單。特別地,Java語(yǔ)言不支持指針,而是使用引用,并提供了自動(dòng)分配和回收內(nèi)存空間的機(jī)制,這樣程序員不必為內(nèi)存管理而擔(dān)憂。2.面向?qū)ο驤ava語(yǔ)言是具備類、接口和繼承等面向?qū)ο蟮暮诵囊兀С诸惖膯卫^承和接口的多繼承,同時(shí)支持類與接口之間的實(shí)現(xiàn)機(jī)制。Java語(yǔ)言全面支持動(dòng)態(tài)綁定。此外,Java語(yǔ)言編程的最小單位是類。因此,Java語(yǔ)言是一門純粹的面向?qū)ο缶幊陶Z(yǔ)言。3.解釋型編程語(yǔ)言Java語(yǔ)言是解釋型編程語(yǔ)言,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式,然后可以在安裝該Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行。4.健壯性Java語(yǔ)言是一種強(qiáng)類型的語(yǔ)言,具有嚴(yán)格的數(shù)據(jù)類型檢查機(jī)制。同時(shí)Java語(yǔ)言支持異常處理、垃圾自動(dòng)收集等功能,丟棄了C++語(yǔ)言的指針,使得Java語(yǔ)言程序更具健壯性。5.安全性Java語(yǔ)言具有嚴(yán)格的安全檢查機(jī)制,能夠在網(wǎng)絡(luò)環(huán)境中防止惡意代碼的攻擊。此外,Java語(yǔ)言對(duì)通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制。同時(shí),Java語(yǔ)言提供安全管理機(jī)制,為Java應(yīng)用設(shè)置安全哨兵。因此,Java語(yǔ)言具有更高的安全性。6.跨平臺(tái)性Java源程序在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式的文件,然后可以在安裝這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。同時(shí),Java語(yǔ)言對(duì)數(shù)據(jù)類型的大小做了統(tǒng)一規(guī)定,數(shù)據(jù)存儲(chǔ)長(zhǎng)度不會(huì)因?yàn)橛布h(huán)境或者編譯器的改變而改變,提高了代碼的可移植性。7.支持多線程Java語(yǔ)言支持多線程,可以控制多個(gè)任務(wù)的并發(fā)執(zhí)行,在很大程度上提高了程序的執(zhí)行效率。1.2JDK的安裝與使用1.2.1JDK簡(jiǎn)介JDK是JavaDevelopKit(即Java開發(fā)工具包)的縮寫。它是Oracle公司為開發(fā)者提供的一套Java開發(fā)環(huán)境,其中包括Java編譯器、Java運(yùn)行工具、Java文檔生成工具和Java打包工具等。JDK是Java編程的核心,所有版本的Java軟件編寫程序都需要JDK的支持。此外,Java程序的運(yùn)行還需要Java運(yùn)行環(huán)境的支持。Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式后,正是通過JRE將這些字節(jié)碼解釋給用戶計(jì)算機(jī)的CPU去執(zhí)行。JRE只包含了Java語(yǔ)言的運(yùn)行工具,不包含Java編譯工具。為了方便使用,JDK安裝包中自帶了一個(gè)JRE,開發(fā)人員只需要在計(jì)算機(jī)上安裝JDK即可默認(rèn)安裝好JRE。截至2022年10月,JDK有三個(gè)長(zhǎng)期支持(Long-TermSupport,LTS)版本,如表1-2-2所示。長(zhǎng)期支持的JDK版本都比較穩(wěn)定,官方也會(huì)不斷更新補(bǔ)丁包,是市場(chǎng)應(yīng)用最廣泛的JDK版本,也是非常適合初學(xué)者使用的JDK版本。1.2.2JDK的下載與安裝JDK可以從Oracle官網(wǎng)直接下載,首先需要在Oracle官網(wǎng)注冊(cè)一個(gè)賬號(hào)。JDK版本不同,下載和安裝的步驟也有所不同。下面以64位的Windows版本為例分別介紹JDK8和JDK17的下載及安裝方法。1.JDK8的下載與安裝下面介紹JDK8的下載與安裝方法,以及系統(tǒng)環(huán)境變量的設(shè)置方法。1)JDK8的下載(1)在下載頁(yè)面選擇Java8選項(xiàng)卡→Windows版本,進(jìn)入如圖1-2-1所示的頁(yè)面。(2)單擊“jdk-8u341-windows-x64.exe”按鈕,獲取下載鏈接,如圖1-2-2所示。(3)勾選圖1-2-2左側(cè)的方框,單擊“Downloadjdk-8u341-windows-x64.exe”按鈕開始下載。下載完成后獲得安裝文件,如圖1-2-3所示。2)JDK8的安裝JDK8安裝的具體流程如下:(1)雙擊“jdk-8u341-windows-x64.exe”圖標(biāo)后,會(huì)彈出如圖1-2-4所示的對(duì)話框,單擊“下一步”按鈕繼續(xù)。(2)軟件默認(rèn)會(huì)安裝三個(gè)模塊,即開發(fā)工具(JDK)、源代碼和公共JRE,如圖1-2-5所示。默認(rèn)的安裝路徑為C:\ProgramFiles\Java\jdk1.8.0_341\,用戶可以使用默認(rèn)路徑安裝,也可以單擊“更改”按鈕選擇軟件的安裝路徑。通常安裝路徑不建議使用漢字及特殊字符。單擊“確定”按鈕開始安裝。安裝完成后,會(huì)彈出“已成功安裝”的提示框,單擊“關(guān)閉”按鈕即可,如圖1-2-8所示。3)系統(tǒng)環(huán)境變量設(shè)置JDK8安裝完成之后,還不能被立即使用。這是由于計(jì)算機(jī)操作系統(tǒng)在這時(shí)調(diào)用javac.exe等工具時(shí)還不知道它的文件路徑,需要用戶在系統(tǒng)環(huán)境變量中手動(dòng)添加JDK的安裝路徑。下面以Win10操作系統(tǒng)為例,演示如何在系統(tǒng)環(huán)境變量中添加JDK的安裝路徑。(1)鼠標(biāo)右鍵單擊“此電腦”圖標(biāo),在出現(xiàn)的懸浮菜單中選擇“屬性”選項(xiàng),會(huì)彈出“設(shè)置”窗口。單擊左側(cè)的“關(guān)于”選項(xiàng),在右側(cè)面板的最底端找到“高級(jí)系統(tǒng)設(shè)置”選項(xiàng)。(2)單擊“高級(jí)系統(tǒng)設(shè)置”選項(xiàng),彈出“系統(tǒng)屬性”對(duì)話框。(3)單擊“環(huán)境變量”按鈕,彈出“環(huán)境變量”對(duì)話框。(4)在系統(tǒng)變量(S)一欄中找到Path變量,如圖1-2-12所示。雙擊變量“Path”選項(xiàng),彈出“編輯環(huán)境變量”對(duì)話框,如圖1-2-13所示。(5)單擊右側(cè)的“新建”按鈕創(chuàng)建一個(gè)新的環(huán)境變量,然后輸入JDK中的bin路徑,如圖1-2-14所示,單擊“確定”按鈕。(6)依次在“環(huán)境變量”窗口和“系統(tǒng)屬性”窗口中單擊“確定”按鈕。至此,系統(tǒng)環(huán)境變量就設(shè)置好了。4)檢驗(yàn)JDK環(huán)境變量JDK環(huán)境變量是否設(shè)置成功可以通過下面的方法進(jìn)行檢驗(yàn)。(1)同時(shí)按下鍵盤中的“win”和“R”鍵,在“運(yùn)行”對(duì)話框中輸入命令“cmd”。(2)單擊“確定”按鈕進(jìn)入cmd窗口。輸入命令“javac”,回車后觀察是否打印輸出了一長(zhǎng)段信息,如圖1-2-16所示。若有則表明JDK環(huán)境變量已經(jīng)設(shè)置成功。在cmd窗口中還可以查看安裝的JDK版本,輸入命令“java-version”后回車,就會(huì)打印輸出JDK的版本信息,如圖1-2-17所示。2.JDK17的下載與安裝下面以JDK17(64位Windows版本)為例介紹JDK17的下載和安裝。1)JDK17的下載在下載頁(yè)面選擇Java17選項(xiàng)卡→Windows版本,進(jìn)入如圖1-2-18所示的頁(yè)面。單擊“x64Installer”右側(cè)的鏈接即可下載。下載完成后獲得安裝文件,如圖1-2-19所示。2)JDK17的安裝JDK17安裝的具體流程如下:(1)雙擊“jdk-17_windows-x64_bin.exe”圖標(biāo)在彈出的對(duì)話框內(nèi)單擊“下一步”按鈕繼續(xù)。(2)軟件默認(rèn)的安裝路徑為C:\ProgramFiles\Java\jdk-\,用戶可以使用默認(rèn)路徑安裝,也可以單擊“更改”按鈕選擇軟件的安裝路徑。通常安裝路徑不建議使用漢字及特殊字符。單擊“下一步”按鈕開始安裝。當(dāng)安裝完成后,會(huì)彈出“已成功安裝”的提示框,單擊“關(guān)閉”按鈕即可。(3)JDK17在安裝的過程中會(huì)自動(dòng)設(shè)置系統(tǒng)環(huán)境變量,不需要再手動(dòng)設(shè)置,因此安裝完JDK17后就可以直接使用了??梢栽赾md中測(cè)試JDK17是否安裝成功,以及查看JDK的版本信息,如圖1-2-24和圖1-2-25所示。1.2.3JDK安裝目錄及工具庫(kù)介紹1.JDK安裝目錄JDK的安裝目錄中有以下6個(gè)子目錄及文件,這些目錄和文件的作用具體如下:(1)bin目錄。bin為二進(jìn)制(binary)的縮寫,bin目錄中存放的是一些可執(zhí)行程序,這些工具庫(kù)是JDK的基本組件。(2)db目錄。db是數(shù)據(jù)庫(kù)(database)的縮寫,db目錄是一個(gè)小型的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)不僅輕便,而且支持JDBC4.0的所有規(guī)范。在學(xué)習(xí)JDBC時(shí),不再需要額外安裝一個(gè)數(shù)據(jù)庫(kù)軟件,選擇直接使用Java語(yǔ)言自身的數(shù)據(jù)庫(kù)管理系統(tǒng)JavaDB即可。(3)jre目錄。jre是Java運(yùn)行環(huán)境(JavaRuntimeEnvironment)的縮寫。該目錄是JRE的根目錄,包含了Java虛擬機(jī)、運(yùn)行時(shí)的類包、Java應(yīng)用啟動(dòng)器以及一個(gè)bin目錄,但不包含開發(fā)環(huán)境中的開發(fā)工具。(4)include目錄。Java語(yǔ)言是由C和C++語(yǔ)言編寫而成的,因此Java程序在啟動(dòng)時(shí)需要引入一些C和C++語(yǔ)言的頭文件,這些頭文件存放在include目錄中。(5)lib目錄。lib是Java庫(kù)文件(library)的縮寫。Java庫(kù)文件也稱作類庫(kù),它是開發(fā)工具使用的歸檔包文件。(6)src.zip文件。src是源文件(source)的縮寫。src文件中放置的是JDK核心類的源代碼,通過該文件可以查看Java基礎(chǔ)類的源代碼。2.JDK開發(fā)工具在諸多開發(fā)工具中,最基礎(chǔ)的就是javac.exe和java.exe。(1)javac.exe是Java程序的編譯器。Java代碼都寫在后綴名為“.java”的文件中。Java編譯器將寫好的Java文件編譯成字節(jié)碼文件,該文件后綴名為“.class”,也稱作class文件。(2)java.exe是Java程序的運(yùn)行工具。它會(huì)啟動(dòng)一個(gè)Java虛擬機(jī)(JavaVirtualMachine,JVM)。JVM相當(dāng)于一個(gè)虛擬的操作系統(tǒng),它專門負(fù)責(zé)運(yùn)行Java字節(jié)碼文件(class文件)。1.3Java語(yǔ)言的運(yùn)行機(jī)制1.3.1編寫和運(yùn)行第一個(gè)Java程序?yàn)榱死斫釰ava語(yǔ)言的運(yùn)行機(jī)制,首先來編寫并運(yùn)行第一個(gè)Java程序,具體步驟如下:(1)在D盤新建一個(gè)txt文本文件,在文本中輸入以下內(nèi)容:(2)保存后關(guān)閉文本文件,并將其命名為FirstDemo.java。注意后綴名“.txt”要改成“.java”。(3)同時(shí)按下鍵盤中的“win”和“R”鍵,輸入“cmd”,打開cmd窗口。在cmd窗口命令行中輸入命令“D:”進(jìn)入D盤,然后輸入命令“javacFirstDemo.java”并按下回車鍵,如圖1-3-2所示。其中javac是javacompile的縮寫,即對(duì)java文件進(jìn)行編譯,生成字節(jié)碼文件。(4)在D盤中生成了一個(gè)class文件“FirstDemo.class”。在cmd窗口命令行中輸入命令“javaFirstDemo”,單擊回車鍵,觀察輸出結(jié)果,如圖1-3-4所示。這里java命令的作用是運(yùn)行一個(gè)class文件。(5)可以觀察到cmd窗口中打印輸出了字符串“HelloWorld!”。至此,已經(jīng)完成了一個(gè)Java程序的編寫、編譯和運(yùn)行。具體代碼如下:1.3.2JVMJava程序的編譯和運(yùn)行是獨(dú)立的兩個(gè)步驟。Java語(yǔ)言一個(gè)重要的特點(diǎn)就是跨平臺(tái)性。Java程序可以在一臺(tái)計(jì)算機(jī)上編寫、編譯和生成class文件,然后在另一臺(tái)計(jì)算機(jī)上可以直接運(yùn)行class文件,不論兩臺(tái)計(jì)算機(jī)的硬件和軟件環(huán)境是否一致。這得益于JVM的功能。JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛擬出來的機(jī)器,是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種功能實(shí)現(xiàn)的。JVM屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。JVM在執(zhí)行字節(jié)碼時(shí),實(shí)際上最終還是把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。這就是Java程序能夠“一次編譯,到處運(yùn)行”的原因。需要注意的是,Java程序可以通過Java虛擬機(jī)實(shí)現(xiàn)跨平臺(tái),但Java虛擬機(jī)本身并不是跨平臺(tái)的,也就是說,不同操作系統(tǒng)上的Java虛擬機(jī)是不同的,如果需要自己的計(jì)算機(jī)能夠運(yùn)行Java代碼,就需要安裝適合自己版本的Java虛擬機(jī),如圖1-3-5所示。1.4Eclipse軟件開發(fā)工具1.4.1Eclipse軟件簡(jiǎn)介是集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)是提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面等工具。常見的集成開發(fā)環(huán)境有微軟的VisualStudio系列、Borland的C++Builder和Delphi系列等。在Java編程中,應(yīng)用最廣泛的IDE有Eclipse、MyEclipse和IntellijIDEA。Eclipse軟件是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境,它附帶了一個(gè)包含了JDK的標(biāo)準(zhǔn)插件集,其設(shè)計(jì)之初就是為了用來進(jìn)行Java程序開發(fā)的。Eclipse的設(shè)計(jì)思想是“一切皆插件”。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境,因此Eclipse軟件也支持C++、Python等其他編程語(yǔ)言的程序開發(fā)。Eclipse軟件不但具備一般IDE所具備的項(xiàng)目管理、代碼運(yùn)行和調(diào)試等功能,而且具有強(qiáng)大的代碼編排功能,可以幫助程序員完成語(yǔ)法修正、代碼修正、補(bǔ)全文字和信息提示等編碼工作,極大地提高了程序開發(fā)的效率。1.4.2Eclipse軟件的下載和安裝1.Eclipse軟件的下載Eclipse軟件可以從Eclipse官網(wǎng)免費(fèi)下載。截至2022年9月,Eclipse最新的軟件版本為EclipseIDE2022-09,該版本要求JDK的版本至少為JDK11。進(jìn)入官網(wǎng)后,可以看到兩個(gè)Download選項(xiàng)(如圖1-4-1所示):一個(gè)是“Downloadx86_64”選項(xiàng),單擊它會(huì)直接選擇最新版本的Eclipse進(jìn)行下載;另一個(gè)是“DownloadPackages”選項(xiàng),單擊它可以選擇舊版本的Elcipse軟件。這里演示EclipseIDE2022-09(Win10版本)安裝文件的下載。(1)單擊“Downloadx86_64”按鈕,進(jìn)入如圖1-4-2所示的界面。(2)單擊“Download”按鈕,下載得到Eclipse軟件的安裝文件,如圖1-4-3所示。2.Eclipse軟件的安裝Eclipse軟件的安裝步驟如下:(1)雙擊Eclipse軟件的安裝文件圖標(biāo),進(jìn)入Eclipse軟件在線安裝程序,如圖1-4-4所示。(2)選擇選項(xiàng)“EclipseIDEforJavaDevelopers”,跳轉(zhuǎn)到圖1-4-5所示的窗口。其中,“Java17+VM”選項(xiàng)用來選擇Eclipse安裝的JDK版本;“InstallationFolder”選項(xiàng)用來設(shè)置Eclipse軟件的安裝路徑。(3)單擊“INSTALL”按鈕開始安裝。安裝成功后即可開始使用Eclipse軟件了。1.4.3Eclip

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論