版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
AI賦能Java語言編程:從入門到高階第1章Java簡(jiǎn)介第2章Java標(biāo)識(shí)符與數(shù)據(jù)類型第3章
表達(dá)式和流程控制語句第4章
數(shù)組和向量第5章
字符串第6章
對(duì)象與類第7章Java異常處理第8章Java語言的高級(jí)特性第9章Java的圖形用戶界面設(shè)計(jì)第10章Swing組件第11章Java數(shù)據(jù)流輸入與輸出第12章
線程第13章Java的網(wǎng)絡(luò)功能第14章
算法競(jìng)賽中的Java編程第15章AI鏈無代碼生成平臺(tái)Sapper全套可編輯PPT課件
Java簡(jiǎn)介JavaIntroduction第一章全套可編輯PPT課件
目標(biāo)/OBJECTIVE0102030405了解Java語言的特點(diǎn)了解Java的跨平臺(tái)特性熟悉Java開發(fā)工具和環(huán)境的配置學(xué)會(huì)運(yùn)行簡(jiǎn)單的Java程序?qū)W會(huì)使用Java核心API文檔01什么是Java語言1.1什么是Java語言Java語言的特點(diǎn)Java是一種面向?qū)ο蟮木幊陶Z言,以其跨平臺(tái)特性、簡(jiǎn)潔的語法和強(qiáng)大的生態(tài)系統(tǒng)而著稱。Java語言自誕生之日起,就廣受世界關(guān)注,它標(biāo)志著Java計(jì)算時(shí)代的到來。Java的眾多特點(diǎn)使其廣受大眾歡迎,尤其是它突出的網(wǎng)絡(luò)編程能力,使其與Web及Internet緊密相連。語言特點(diǎn):1.語法簡(jiǎn)單,功能強(qiáng)大;2.具有跨平臺(tái)特性;3.分布式計(jì)算且具有安全性;4.具有混合模式的運(yùn)行方式;5.具有多線程程序;6.動(dòng)態(tài)執(zhí)行特性;7.具有豐富的API文檔和類庫。1.1什么是Java語言Java的三層結(jié)構(gòu)Java的三層結(jié)構(gòu)體現(xiàn)了分層設(shè)計(jì)的智慧,這一設(shè)計(jì)思想在軟件開發(fā)領(lǐng)域得到了廣泛的應(yīng)用。這種結(jié)構(gòu)的理念起源于對(duì)分布式系統(tǒng)和大型企業(yè)應(yīng)用的開發(fā)需求的深刻洞察。通過將系統(tǒng)巧妙地劃分為表示、業(yè)務(wù)邏輯和數(shù)據(jù)訪問這三個(gè)獨(dú)立層次,成功提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性,就如同建造一座高樓大廈時(shí),每一層都承擔(dān)著獨(dú)特的責(zé)任,共同構(gòu)成了穩(wěn)固的建筑結(jié)構(gòu)。Java作為一門廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用的編程語言,通過三層結(jié)構(gòu)為開發(fā)者提供了一種精妙的架構(gòu)范式。這種設(shè)計(jì)思想猶如一位智者的指引,為當(dāng)時(shí)的軟件開發(fā)注入了新的活力。而如今,這一思想仍然是軟件工程中的重要指導(dǎo)原則,就像是一顆恒久不變的北極星,引領(lǐng)著開發(fā)者構(gòu)建出更為可靠、可維護(hù)的應(yīng)用系統(tǒng)。1.1什么是Java語言Java虛擬機(jī)1.Java虛擬機(jī)不同于其他匯編語言,Java程序并不直接在系統(tǒng)CPU上執(zhí)行,而是依賴于Java虛擬機(jī)(JavaVirtualMachine,JVM)。JVM的作用類似于一個(gè)翻譯器,將Java源代碼翻譯成可以在不同平臺(tái)上執(zhí)行的中間代碼,也就是字節(jié)碼。JVM的工作原理包括類加載、字節(jié)碼解釋與編譯、運(yùn)行時(shí)數(shù)據(jù)區(qū)、垃圾回收以及安全性和運(yùn)行時(shí)檢查。在類加載階段,JVM使用類加載器將字節(jié)碼加載到內(nèi)存中,而字節(jié)碼可以通過解釋器逐行解釋執(zhí)行,或者通過即時(shí)編譯器編譯成本地機(jī)器碼以提高執(zhí)行效率。運(yùn)行時(shí)數(shù)據(jù)區(qū)的合理劃分包括堆、棧、方法區(qū)等,而垃圾回收器負(fù)責(zé)回收不再使用的內(nèi)存。安全性由安全管理器管理,同時(shí)運(yùn)行時(shí)進(jìn)行各種檢查以增強(qiáng)程序的健壯性。1.1什么是Java語言Java虛擬機(jī)
2.Java虛擬機(jī)性能早期JVM采用解釋執(zhí)行方式,每次運(yùn)行程序都需要實(shí)時(shí)將字節(jié)碼翻譯成機(jī)器碼,這就好比是每次演講都需要現(xiàn)場(chǎng)翻譯,效率自然有所犧牲。然而,隨著技術(shù)的發(fā)展,Java的性能逐漸迎來了顯著提升。其中Hotspot技術(shù)的引入可視為一個(gè)重要的里程碑。Hotspot是由Oracle-Sun開發(fā)的一種JVM實(shí)現(xiàn),它引入了即時(shí)編譯器(Just-In-Timecompiler,JIT)技術(shù)。這就像是一位翻譯官聰明地提前翻譯了一部分文章,使得下次需要的時(shí)候,不必重新進(jìn)行翻譯,大大提高了執(zhí)行效率。通過JIT編譯,Hotspot在運(yùn)行時(shí)將熱點(diǎn)代碼(頻繁執(zhí)行的代碼段)直接編譯成本地機(jī)器碼,而不是像傳統(tǒng)的解釋執(zhí)行方式那樣逐行解釋。這種技術(shù)使得Java應(yīng)用在運(yùn)行時(shí)能夠更接近本地應(yīng)用的執(zhí)行速度。1.1什么是Java語言垃圾收集
Java的垃圾收集(GarbageCollection)就好比是一位高效的清理工,負(fù)責(zé)檢查和回收那些不再被程序使用的內(nèi)存空間,以確保系統(tǒng)的資源得以有效利用。在Java中,垃圾收集器會(huì)定期檢查程序運(yùn)行時(shí)生成的對(duì)象,識(shí)別并清理掉那些不再被引用的對(duì)象。相比于像C或C++等語言,Java的垃圾收集機(jī)制省去了程序員手動(dòng)管理內(nèi)存的麻煩,就如同在生活中,有了垃圾分類和回收,人們不再需要親自去垃圾場(chǎng)傾倒垃圾一樣。這種自動(dòng)化的垃圾收集方式帶來了更大的便利性,減輕了程序員的負(fù)擔(dān),避免了因?yàn)閮?nèi)存泄漏而導(dǎo)致的許多潛在問題。然而,與C或C++等語言相比,Java垃圾收集也存在一些性能上的開銷。在實(shí)時(shí)性要求極高的場(chǎng)景,像C語言一樣手動(dòng)管理內(nèi)存可能更為靈活。1.1什么是Java語言代碼安全Java的代碼安全機(jī)制好比一座城堡,通過沙箱模型、三級(jí)安全檢查和Applet審查,構(gòu)筑了堅(jiān)實(shí)的安全防線。
Java的“沙箱”模型像城堡外城門一樣,主要限制程序?qū)ο到y(tǒng)資源的訪問,確保程序在受限環(huán)境中運(yùn)行,避免越界或?qū)ο到y(tǒng)造成不良影響。Java得到三級(jí)安全檢查機(jī)制類似城堡內(nèi)城墻,進(jìn)一步強(qiáng)化安全屏障,包括類加載時(shí)的驗(yàn)證、字節(jié)碼驗(yàn)證和運(yùn)行時(shí)的訪問控制。這三道防線確保只有受信任的程序進(jìn)入城內(nèi),沒有攜帶潛在威脅。Applet作為Java程序環(huán)境的組成部分,類似城堡內(nèi)的貴賓,經(jīng)過嚴(yán)格審查和權(quán)限控制,以確保其不越權(quán)操作。綜合來看,Java的安全設(shè)計(jì)使得程序能夠在相對(duì)安全的環(huán)境中運(yùn)行,有效地防范潛在的安全威脅。02一個(gè)基本的Java程序1.2一個(gè)基本的Java程序Java環(huán)境的配置在創(chuàng)建第一個(gè)Java程序之前,我們要先安裝一些必要的開發(fā)工具。首先進(jìn)入OraCle-Sun公司官網(wǎng)下載Java的JDK軟件包,其中包含了Java開發(fā)所需的所有工具。在安裝好JDK后要正確配置Java_HOME、ClassPATH、Path環(huán)境變量,以便系統(tǒng)能夠找到JavaC和Java所在目錄。首先登錄到OraCle-Sun的官網(wǎng):https://www.oraCle.Com/Cn/Java/teChnologies/downloads/
這個(gè)頁面提供了所有主流操作系統(tǒng)下當(dāng)前最新版本的JDK軟件包。讀者可以根據(jù)自己電腦的詳細(xì)配置情況自行選擇。這里以Windows系統(tǒng)為例,當(dāng)前下載的文件是JDK.21.0.1的版本。1.2一個(gè)基本的Java程序Java環(huán)境的配置這里選擇下載x64MSIinstaller,點(diǎn)擊對(duì)應(yīng)鏈接下載完成之后,打開文件即可直接進(jìn)入安裝過程。如圖所示。JDK軟件包默認(rèn)安裝位置在C盤,讀者也可以自行選擇安裝位置。如圖所示?!?.2一個(gè)基本的Java程序Java環(huán)境的配置當(dāng)出現(xiàn)此步驟時(shí),代表Java的JDK安裝成功。1.2一個(gè)基本的Java程序Java環(huán)境的配置完成以上操作以后,切記要配置三個(gè)重要的環(huán)境變量。首先我們打開系統(tǒng)設(shè)置,找到系統(tǒng)欄目下的系統(tǒng)信息,點(diǎn)擊高級(jí)系統(tǒng)設(shè)置,然后就會(huì)看到如圖所示的環(huán)境變量選項(xiàng)。點(diǎn)開以后,在用戶變量欄目下新建JAVA_HOME環(huán)境變量,變量值為剛才安裝的JDK的絕對(duì)文件路徑,然后點(diǎn)擊確定。環(huán)境變量的配置如圖。創(chuàng)建完成之后,新建環(huán)境變量CLASSPATH,其變量值為:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
(注意不要漏了前面的“.”)最后再新建環(huán)境變量Path(注意區(qū)分大小寫),其變量值為:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
配置系統(tǒng)環(huán)境變量
配置環(huán)境變量JAVA_HOME配置環(huán)境變量CLASSPATH配置環(huán)境變量Path1.2一個(gè)基本的Java程序Java環(huán)境的配置至此,Java的JDK軟件包就配置完成了。為了驗(yàn)證自己的安裝正確性,可以使用Win+R組合鍵打開計(jì)算機(jī)運(yùn)行窗口,再輸入cmd指令打開命令提示符環(huán)境。輸入Javac指令,如果看到如圖所示的幫助信息,則已正確安裝。1.2一個(gè)基本的Java程序Java應(yīng)用程序Java程序一般分為兩種,一種是Java應(yīng)用程序(JavaApplication),另一種則是Java小應(yīng)用程序(Applet)。這兩者雖然只有一字之差,但卻存在很大的差別。從開發(fā)難度和復(fù)雜度來說,Java應(yīng)用程序無疑更加具有挑戰(zhàn)性,一般是由大型團(tuán)隊(duì)或公司開發(fā),且聲明周期長(zhǎng),需要長(zhǎng)時(shí)間維護(hù)更新。而Java小程序則比較小巧靈活,開發(fā)難度不高,且不會(huì)消耗太多資源。和其他編程語言一致,Java語言也可以創(chuàng)建一個(gè)簡(jiǎn)單的,通常意義下的應(yīng)用程序。略有不同的是,Java的主類可以直觀的體現(xiàn)代碼的作用,如圖,代碼會(huì)在屏幕上顯示字符串“helloworld”。1.2一個(gè)基本的Java程序Java應(yīng)用程序以上代碼包含了一個(gè)簡(jiǎn)單小程序的基本組成。第一行:由一行注釋內(nèi)容的聲明標(biāo)志,兩個(gè)正斜杠開頭。注釋不會(huì)對(duì)程序運(yùn)行產(chǎn)生影響。第二行:public
classHelloWorld,這里定義了一個(gè)類,就像是一份菜單上寫著某個(gè)菜的名字,這個(gè)類的名字是"HelloWorld",其中public表示這個(gè)類是公開的,其他的地方也可以使用。第三行:publicstaticvoidmain(String[]args),這是定義了一個(gè)特殊的方法,就像是一家餐廳的招牌菜,叫做"main",這是Java程序的入口,當(dāng)你運(yùn)行這個(gè)程序時(shí),計(jì)算機(jī)會(huì)從這里開始執(zhí)行。第四行:“{”,這是一個(gè)大括號(hào),表示一個(gè)代碼塊的開始,就像是一頓飯的開始,里面放著我們要執(zhí)行的代碼。第五行:System.out.println("helloworld");,這是具體的代碼,就像是一道菜,這里的意思是告訴計(jì)算機(jī)把"helloworld"這句話打印(顯示)到屏幕上。第六行:“}”,這是代碼塊的結(jié)束,就像是一頓飯的結(jié)束,表示在這里沒有更多的代碼了。03程序的編譯與運(yùn)行1.3程序的編譯與運(yùn)行編譯Java程序支持編譯運(yùn)行和解釋運(yùn)行兩種模式。用系統(tǒng)自帶文本編輯器(如Windows的記事本),輸入HelloWorld程序并保存為文件HelloWorld.Java。注意Java對(duì)大小寫敏感,確保文件名和Java程序主類名一致。在cmd中打開命令行窗口,進(jìn)入文件所在磁盤,然后使用cd命令進(jìn)入包含HelloWorld.Java文件的文件夾。使用dir命令查看文件夾內(nèi)容,可以看到只有HelloWorld.Java一個(gè)文件。使用Javac命令編譯程序:Javac-encodingUTF-8HelloWorld.Java再次用dir命令查看,發(fā)現(xiàn)文件夾下出現(xiàn)了一個(gè).class的文件,則編譯成功。1.3程序的編譯與運(yùn)行編譯源文件就是純文本格式的文件,而Java的執(zhí)行系統(tǒng)是無法直接識(shí)別的。因此必須對(duì)源代碼進(jìn)行編譯,生成Java字節(jié)碼的類文件之后才能運(yùn)行。如果編譯器沒有反饋錯(cuò)誤信息,則證明編譯成功。
創(chuàng)建HelloWorld.java程序
編譯HelloWorld.java程序1.3程序的編譯與運(yùn)行運(yùn)行順利完成以上步驟以后,類文件就可以執(zhí)行了。Java的解釋器是’java’,JVM通過解釋器執(zhí)行類文件。執(zhí)行以下命令,即可運(yùn)行程序HelloWorld:JavaHelloWorld//這里的HelloWorld是類名輸入命令并回車,結(jié)果如圖所示。會(huì)看到屏幕上顯示helloworld,這就是程序輸出的結(jié)果。04常見錯(cuò)誤1.4常見錯(cuò)誤編譯時(shí)錯(cuò)誤1.錯(cuò)誤提示內(nèi)容一Javac:Commandnotfound錯(cuò)誤原因:包含Javac編譯器的路徑變量設(shè)置錯(cuò)誤。請(qǐng)檢查環(huán)境變量的設(shè)置是否正確,大多數(shù)情況下Javac編譯器都放在JDK下的bin目錄中。2.錯(cuò)誤提示內(nèi)容二HelloWorld.java:5:cannotfindsymbolsymbol:variablexSystem.out.println(x);^錯(cuò)誤原因:在第5行中,使用了未聲明的變量x。要解決此錯(cuò)誤,應(yīng)該先聲明并初始化變量x,然后再使用它。1.4常見錯(cuò)誤編譯時(shí)錯(cuò)誤對(duì)于系統(tǒng)無法識(shí)別的標(biāo)識(shí)符(由符號(hào)“^”指示的),可能出現(xiàn)以下幾種原因:●程序員可能犯了拼寫錯(cuò)誤,包括大小寫不正確。●方法所在的類可能未引入到當(dāng)前的命名空間?!駥?shí)例所對(duì)應(yīng)的類中可能未定義要調(diào)用的方法?!衿渌颉T谶@里,只展示了一小部分可能的錯(cuò)誤,其他錯(cuò)誤需要在練習(xí)中逐漸熟悉,培養(yǎng)迅速定位和修復(fù)錯(cuò)誤的能力。1.4常見錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤1.錯(cuò)誤提示內(nèi)容一Can'tfindclassHelloWorld錯(cuò)誤原因:系統(tǒng)無法找到名為HelloWorld的類文件。通常來說,此錯(cuò)誤表明類名與源文件名不一致。編譯器在生成filename.class文件時(shí),系統(tǒng)使用的是類定義的名稱。2.錯(cuò)誤提示內(nèi)容二InclassHelloWorld:mainmustbepublicandstatic錯(cuò)誤原因:在HelloWorld類中,main方法必須聲明為public和static。錯(cuò)誤發(fā)生的原因是main方法的修飾符缺少這兩個(gè)關(guān)鍵字。修飾符public表示該方法是公有的,而static表示該方法是靜態(tài)的,因?yàn)樗浅绦虻娜肟邳c(diǎn),無需創(chuàng)建類的實(shí)例就可以調(diào)用。3.文件中類的個(gè)數(shù)錯(cuò)誤錯(cuò)誤原因:根據(jù)Java規(guī)范,每個(gè)源文件只能包含一個(gè)公有類,否則會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。如果有多個(gè)公有類,必須將它們分別放在不同的文件中。然而,一個(gè)文件可以包含任意數(shù)量的非公有類,沒有限制。這確保了Java編程的結(jié)構(gòu)清晰性,每個(gè)文件對(duì)應(yīng)一個(gè)主要的公有類,其他非公有類可以作為輔助或內(nèi)部實(shí)現(xiàn)存在。1.4常見錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤4.層次錯(cuò)誤一個(gè).Java源文件可以包含三個(gè)“頂層”元素:●包說明(package語句):可選,指定類所屬的包?!褚胝Z句(import語句):可選,引入其他包中的類。●類和接口說明:源文件的主體,包括定義的類和接口。這些元素必須按照特定的次序出現(xiàn):引入語句必須在所有類說明之前。如果使用了包說明,包說明必須在所有類說明和引入語句前出現(xiàn)。總體來說,Java程序結(jié)構(gòu)包括:●包說明(package語句):零個(gè)或一個(gè),必須在文件開頭。●引入語句(import語句):零個(gè)或多個(gè),必須在所有類定義之前?!窆械模╬ublic)類定義:零個(gè)或一個(gè)?!耦惗x:零個(gè)或多個(gè)?!窠涌诙x:零個(gè)或多個(gè)。每個(gè)Java源文件至少包含一個(gè)類,但最多只能包含一個(gè)public類。如果源文件包含public類,文件名必須與該類名完全相同,且大小寫一致。05使用Java核心API文檔1.5使用Java核心API文檔Java核心API文檔是什么
API(ApplicationProgrammingInterface):應(yīng)用程序編程接口簡(jiǎn)單的來說,API就好比是一個(gè)軟件的服務(wù)窗口。當(dāng)你需要在自己的程序中使用某個(gè)軟件的功能時(shí),你可以通過API與這個(gè)軟件進(jìn)行交流,就像通過窗口向服務(wù)員下單一樣。API定義了你可以怎樣與軟件進(jìn)行通信,包括發(fā)送什么樣的請(qǐng)求以及獲取什么樣的響應(yīng)。這樣,你的程序就可以與其他軟件互相合作,實(shí)現(xiàn)更豐富的功能,而無需了解對(duì)方的具體實(shí)現(xiàn)方式。1.5使用Java核心API文檔Java核心API文檔是什么
Java的核心API文檔被組織成了一種層次結(jié)構(gòu),就像一本書的目錄一樣。這本“書”的首頁是一個(gè)主頁,上面有鏈接,點(diǎn)擊鏈接可以進(jìn)入每個(gè)“章節(jié)”或“包”的內(nèi)容。如果你選擇了特定的包,就會(huì)看到該包里面的所有類和接口的列表。每個(gè)類都有一個(gè)鏈接,點(diǎn)擊鏈接可以查看該類的詳細(xì)信息。這些類的文檔都按照相同的格式展示,雖然具體內(nèi)容可能有所不同。總的來說,Java的核心API有43個(gè)“章節(jié)”(包),每個(gè)“章節(jié)”包含一些類和接口,它們又包含一些屬性。整個(gè)API文檔按照一定的順序列出了各個(gè)類的相關(guān)內(nèi)容。由于Java提供的內(nèi)容非常豐富,讀者不太可能在閱讀一兩本Java教科書后就能完全掌握。在實(shí)際編程中,API是不可或缺的工具。實(shí)際上,正是由于其豐富的API,Java才取得了如此巨大的成功。1.5使用Java核心API文檔Java核心API文檔的使用
要查看文檔,需要先從公司的網(wǎng)站下載文檔文件。假設(shè)文件存放在JDK目錄下,可以通過在瀏覽器地址欄中輸入jdk\docs\index.html來查看JDK文檔。Java核心API文檔的初始頁面如圖所示:1.5使用Java核心API文檔Java核心API文檔的使用
單擊JavaSEAPI進(jìn)入類文檔窗口,如圖所示:1.5使用Java核心API文檔Java核心API文檔的使用
單擊JavaSEAPI進(jìn)入類文檔窗口,如圖所示:這個(gè)窗口分為三部分:左上部分顯示JavaJDK8中提供的所有包的信息,在選中某個(gè)包之后,將在左下部分顯示這個(gè)包中所有接口及類的信息。1.5使用Java核心API文檔Java核心API文檔的使用例如,選擇查看Java.lang包,窗口顯示的內(nèi)容如圖所示:1.5使用Java核心API文檔Java核心API文檔的使用如果想進(jìn)一步查看包中Integer類的信息,可選中Integer,右側(cè)窗口部分將顯示Java.lang中Integer類的所有接口及類的內(nèi)容(如圖1-20),向下拉動(dòng)滾卷?xiàng)l,定位到所需的位置就可以了。1.5使用Java核心API文檔Java核心API文檔的使用通常情況下,一個(gè)類的信息可以分為以下幾個(gè)部分:●字段摘要:列舉了類中的成員變量信息,包括名稱、類型和含義?!駱?gòu)造方法摘要提供了關(guān)于類的構(gòu)造方法的信息,包括參數(shù)列表和實(shí)例創(chuàng)建的解釋。●方法摘要:包含了要使用的方法名稱。●字段詳細(xì)信息:對(duì)成員變量進(jìn)行詳細(xì)介紹?!駱?gòu)造方法詳細(xì)信息:展示構(gòu)造方法的詳細(xì)信息,包括參數(shù)列表和實(shí)例創(chuàng)建的過程?!穹椒ㄔ敿?xì)信息:對(duì)方法的使用進(jìn)行詳細(xì)介紹,包括調(diào)用參數(shù)和返回值的情況。這六個(gè)部分成對(duì)呈現(xiàn),摘要部分提供簡(jiǎn)要介紹,詳細(xì)信息部分詳細(xì)列示具體內(nèi)容。06本章小結(jié)本章小結(jié)本章介紹了Java語言的基本特點(diǎn),包括其面向?qū)ο蟆⒖缙脚_(tái)、健壯性等特性。通過對(duì)Java的三層結(jié)構(gòu)、虛擬機(jī)、垃圾收集等核心概念的介紹,使讀者建立了對(duì)Java基礎(chǔ)架構(gòu)的整體認(rèn)識(shí)。隨后,學(xué)習(xí)了如何配置Java環(huán)境、編寫基本的Java程序,以及程序的編譯與運(yùn)行過程。最后,探討了常見的編譯時(shí)和運(yùn)行時(shí)錯(cuò)誤,以及如何利用Java核心API文檔進(jìn)行更深入的學(xué)習(xí)。在深入學(xué)習(xí)Java編程的過程中,這些基礎(chǔ)知識(shí)將為讀者打下堅(jiān)實(shí)的基礎(chǔ)。標(biāo)識(shí)符與數(shù)據(jù)類型IdentifierandDataType第二章目標(biāo)/OBJECTIVE010203基本語法單位基本數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型01基本語法單位2.1基本語法單位Java是一種靜態(tài)類型的面向?qū)ο缶幊陶Z言,以類、變量、方法和運(yùn)算符為基本語法單位。類定義對(duì)象的屬性和行為;變量用于存儲(chǔ)數(shù)據(jù);方法包含特定任務(wù)的代碼塊;運(yùn)算符執(zhí)行運(yùn)算。理解這些基本元素是掌握J(rèn)ava和編寫高效程序的關(guān)鍵??瞻鬃⑨尲罢Z句空白空白是指在代碼中沒有實(shí)際意義的空格、制表符、換行符和注釋。在Java中空白主要有兩個(gè)作用:(1)分隔符:空白可以用于分隔代碼中的標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符和常量等,以提高代碼的可讀性。例如,在變量賦值語句中,等號(hào)前后的空白可以使代碼更清晰易懂:intx=10;2.1基本語法單位(2)提高可讀性:適當(dāng)?shù)目瞻卓梢允勾a更易讀,使代碼塊、表達(dá)式和語句的結(jié)構(gòu)更清晰明了。例如,在方法的參數(shù)列表中,使用空格將參數(shù)分隔開可以提高可讀性:`publicvoidprintNumbers(inta,intb,intc)`。另外,空白還可以用于縮進(jìn)代碼塊,以在視覺上表示代碼的層次結(jié)構(gòu)??s進(jìn)可以使代碼塊的邏輯結(jié)構(gòu)更加清晰,便于理解和維護(hù)。需要注意的是,Java編譯器會(huì)忽略空白,因此在語法上不會(huì)對(duì)程序的執(zhí)行產(chǎn)生影響。然而,良好的空白使用習(xí)慣可以提高代碼的可讀性和可維護(hù)性,使代碼更易于理解和修改。空白的應(yīng)用如下所示:publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,World!");}}2.1基本語法單位publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,World!");}}在上面的代碼中,空白被用于分隔關(guān)鍵字、類名、方法名、參數(shù)列表和語句,使代碼更易讀。注釋注釋是一種特殊的文本標(biāo)記,用于對(duì)代碼進(jìn)行解釋、說明和文檔化。這些注釋在編譯過程中會(huì)被編譯器忽略,不會(huì)被翻譯成可執(zhí)行的代碼。它們的主要作用是幫助其他開發(fā)人員更好地理解代碼的意圖和功能,提高代碼的可讀性和可維護(hù)性。通過合理使用注釋,可以使代碼更加易于理解和修改,提高團(tuán)隊(duì)協(xié)作的效率。2.1基本語法單位(1)單行注釋:以雙斜線
//
開始,直到行末為止。用于在一行中對(duì)代碼進(jìn)行短暫的解釋或說明。(2)多行注釋:以斜線星號(hào)
/*
開始,以星號(hào)斜線
*/
結(jié)束。用于注釋一段代碼或多行代碼。//這是一個(gè)單行注釋intage=25;//定義一個(gè)年齡變量/*這是一個(gè)多行注釋的示例。它可以跨越多行,用于對(duì)代碼塊進(jìn)行詳細(xì)解釋。*/intsum=a+b;//計(jì)算兩個(gè)數(shù)的和。2.1基本語法單位(3)文檔注釋:以斜線星號(hào)
/**
開始,以星號(hào)斜線
*/
結(jié)束。用于生成文檔,可以通過工具生成API文檔。/***這是一個(gè)文檔注釋的示例。*它可以包含對(duì)類、方法、字段等的詳細(xì)描述。*/PublicclassMyClass{/***這是一個(gè)方法的文檔注釋。*它描述了方法的功能、參數(shù)和返回值。*@parama第一個(gè)參數(shù)*@paramb第二個(gè)參數(shù)*@return兩個(gè)參數(shù)的和*/publicintadd(inta,intb){returna+b;}}此外,文檔注釋還可以使用標(biāo)簽(以@開頭)來提供更多的信息,例如@param用于描述方法參數(shù),@return用于描述返回值等。2.1基本語法單位語句、分號(hào)和塊語句是用來執(zhí)行特定操作的代碼單元。每個(gè)語句通常以分號(hào)(;)結(jié)尾,表示語句的結(jié)束。常見的語句類型包括表達(dá)式語句、聲明語句、控制流語句和塊。表達(dá)式語句:用于執(zhí)行計(jì)算或操作,例如賦值語句和方法調(diào)用語句。聲明語句:用于聲明變量或常量??刂屏髡Z句:用于控制程序的執(zhí)行流程,包括條件語句(if-else)、循環(huán)語句(for、while、do-while)和跳轉(zhuǎn)語句(break、continue、return)。塊:由一對(duì)花括號(hào)括起來的一組語句,用于形成邏輯上的代碼塊,常用于控制流語句和創(chuàng)建局部作用域。2.1基本語法單位關(guān)鍵字關(guān)鍵字是一類具有特定含義的保留字,它們用于構(gòu)建語言結(jié)構(gòu)、實(shí)現(xiàn)功能或設(shè)定限制。這些關(guān)鍵字具有預(yù)先定義的用途,不可用作標(biāo)識(shí)符(如變量名、方法名等)。關(guān)鍵字涵蓋了定義類、變量、方法、控制流程等各個(gè)方面,通過運(yùn)用這些關(guān)鍵字,可編寫符合語法規(guī)范的程序。關(guān)鍵字作用if條件語句關(guān)鍵字,用于根據(jù)表達(dá)式的值決定是否執(zhí)行代碼塊。else否則關(guān)鍵字,與if配合使用,定義條件不滿足時(shí)執(zhí)行的代碼塊。while循環(huán)關(guān)鍵字,用于創(chuàng)建一個(gè)循環(huán),只要條件為真,循環(huán)體就會(huì)執(zhí)行。for循環(huán)關(guān)鍵字,用于創(chuàng)建一個(gè)循環(huán),初始化表達(dá)式,條件表達(dá)式和迭代表達(dá)式分別定義了循環(huán)的起始、條件和增量。break中斷關(guān)鍵字,用于立即退出當(dāng)前所在的循環(huán)結(jié)構(gòu)。continue繼續(xù)執(zhí)行關(guān)鍵字,用于跳過當(dāng)前循環(huán)的剩余代碼,直接進(jìn)入下一次循環(huán)。2.1基本語法單位return返回關(guān)鍵字,用于從方法中返回一個(gè)值。void無返回值關(guān)鍵字,用于聲明沒有返回值的方法。this當(dāng)前對(duì)象關(guān)鍵字,用于引用當(dāng)前對(duì)象的成員。super超類關(guān)鍵字,用于引用當(dāng)前對(duì)象的超類的成員。class類定義關(guān)鍵字,用來聲明一個(gè)類,定義類的屬性和方法。interface接口關(guān)鍵字,用來聲明一個(gè)接口,接口中只包含方法的聲明,沒有具體的實(shí)現(xiàn)。extends繼承關(guān)鍵字,用于子類中,指定父類的類型,實(shí)現(xiàn)繼承機(jī)制。implements接口實(shí)現(xiàn)關(guān)鍵字,用于類中,指定類實(shí)現(xiàn)的接口。public公共訪問關(guān)鍵字,用來定義類的公共成員,它們可以在任何地方被訪問。private私有訪問關(guān)鍵字,用來定義類的私有成員,它們只能在類內(nèi)部被訪問。2.1基本語法單位總的來說,關(guān)鍵字就像社會(huì)主義法治社會(huì)的法律法規(guī),為我們的編程行為設(shè)定了明確的界限。它們?cè)诙鄠€(gè)方面發(fā)揮作用,就如同我們?cè)诮ㄔO(shè)社會(huì)主義現(xiàn)代化國(guó)家時(shí)需要全面考慮的方面。這些關(guān)鍵字引導(dǎo)我們遵循正確的編程規(guī)范,引導(dǎo)我們樹立正確的價(jià)值觀。讓我們?cè)诰幊痰氖澜缋?,也能體驗(yàn)到遵循規(guī)則的力量和秩序之美。
標(biāo)識(shí)符標(biāo)識(shí)符是用于指代變量、方法、類、接口及其他程序?qū)嶓w的名稱。標(biāo)識(shí)符的構(gòu)成要素包括字母、數(shù)字、下劃線以及美元符號(hào),但在使用過程中,必須遵循一定的命名規(guī)范和約定。以下列舉了標(biāo)識(shí)符的關(guān)鍵規(guī)則與慣例:1.由字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成。2.第一個(gè)字符必須是字母、下劃線或美元符號(hào),不能是數(shù)字。3.區(qū)分大小寫,例如,myVariable和myvariable是不同的標(biāo)識(shí)符。4.不能是關(guān)鍵字和保留字,如class、public、if等。5.具有描述性,以提高代碼的可讀性。例如,firstName、calculateTotal等。2.1基本語法單位以下是一些符合標(biāo)識(shí)符命名約定的示例:intage;//變量名為ageStringfirstName;//變量名為firstNamevoidcalculateTotal(){//方法名為calculateTotal//方法體}classMyClass{//類名為MyClass//類定義}interfaceMyInterface{//接口名為MyInterface//接口定義}請(qǐng)注意,盡管在Java中允許美元符號(hào)($)作為標(biāo)識(shí)符的一部分,但在常規(guī)編碼實(shí)踐中,美元符號(hào)通常僅用于自動(dòng)生成代碼或特定用途。因此,不建議在手動(dòng)編寫的代碼中使用美元符號(hào)作為標(biāo)識(shí)符。為提高代碼的可讀性和可維護(hù)性,應(yīng)選擇具有實(shí)際意義且符合命名約定的標(biāo)識(shí)符。由此可見,妥善選擇標(biāo)識(shí)符命名至關(guān)重要。02基本數(shù)據(jù)類型2.2基本數(shù)據(jù)類型
基本數(shù)據(jù)類型基本數(shù)據(jù)類型是預(yù)定義的用于存儲(chǔ)和操作基本數(shù)據(jù)的固定類型。它們涵蓋了整數(shù)類型(如int、long)、浮點(diǎn)數(shù)類型(如float、double)、字符類型(如char)以及布爾類型(如boolean)等。這些數(shù)據(jù)類型具有明確的大小和范圍,并在內(nèi)存中占用特定的空間。借助基本數(shù)據(jù)類型,我們可以聲明變量、執(zhí)行數(shù)值計(jì)算、存儲(chǔ)字符和布爾值等操作?;緮?shù)據(jù)類型的應(yīng)用簡(jiǎn)潔且高效,是Java編程中不可或缺的基礎(chǔ)組成部分。2.2基本數(shù)據(jù)類型
基本數(shù)據(jù)類型布爾類型(boolean)用于表示邏輯值。其取值僅限于`true`(真)和`false`(假)兩種可能,主要應(yīng)用于條件判斷和程序控制流程,構(gòu)成諸如if-else語句、while循環(huán)、for循環(huán)等控制結(jié)構(gòu)的核心部分。在聲明布爾類型變量時(shí),采用`boolean`關(guān)鍵字,此后,變量可賦予`true`或`false`值。布爾類型變量可參與邏輯運(yùn)算,包括"與"(&&)、"或"(||)和"非"(!)操作,這些運(yùn)算符使我們能夠組合或修改布爾表達(dá)式,構(gòu)建更為復(fù)雜的邏輯條件。2.2基本數(shù)據(jù)類型整數(shù)類型(byte,short,int,long)用于表示不含小數(shù)部分的數(shù)值。Java提供了四種不同大小的整型,包括字節(jié)(byte)、短整型(short)、整型(int)和長(zhǎng)整型(long),它們各自具有不同的位數(shù)和取值范圍,以滿足各種編程需求。類型字節(jié)大小取值范圍是否有符號(hào)byte1字節(jié)-2^7~2^7-1是short2字節(jié)-2^15~2^15-1是int4字節(jié)-2^31~2^31-1是long8字節(jié)-2^63~2^63-1是2.2基本數(shù)據(jù)類型以下是對(duì)四種整型的應(yīng)用://byte:范圍從-128到127byteb=100;//byteb=200;//這行代碼會(huì)報(bào)錯(cuò),因?yàn)?00超出了byte的取值范圍//short:范圍從-32768到32767shorts=20000;//shorts=40000;//這行代碼會(huì)報(bào)錯(cuò),因?yàn)?0000超出了short的取值范圍//int:范圍從-2,147,483,648到2,147,483,647inti=2000000000;//inti=3000000000;//這行代碼會(huì)報(bào)錯(cuò),因?yàn)?000000000超出了int的取值范圍//long:范圍從-9,223,372,036,854,775,808到9,223,372,036,854,775,807longl=3000000000L;//注意末尾的L,表示這是一個(gè)long型的字面量//longl=9223372036854775808L;//這行代碼會(huì)報(bào)錯(cuò),因?yàn)?223372036854775808超出了long的取值范圍2.2基本數(shù)據(jù)類型浮點(diǎn)類型(double,float)用于表示含有小數(shù)的部分的數(shù)值。Java提供了兩種浮點(diǎn)類型:float和double,它們分別代表單精度和雙精度浮點(diǎn)數(shù)。在內(nèi)存中,float占用4字節(jié),而double占用8字節(jié),這使得double類型能夠提供更大的范圍和更高的精度。類型占用存儲(chǔ)空間取值范圍有效數(shù)字默認(rèn)類型float4字節(jié)-2^-45~2^-45約6-7位doubledouble8字節(jié)-2^-1022~2^-1022約15位double2.2基本數(shù)據(jù)類型//聲明和初始化一個(gè)float變量floatmyFloat=5.25f;System.out.println("Floatvalue:"+myFloat);//聲明和初始化一個(gè)double變量doublemyDouble=5.25;System.out.println("Doublevalue:"+myDouble);字符類型(char)用于存儲(chǔ)單個(gè)字符。char類型的大小為16位,作為唯一的無符號(hào)整數(shù)類型,它可以表示Unicode字符(包括ASCII字符)。以下是對(duì)字符類型的應(yīng)用:
以下是對(duì)兩種浮點(diǎn)型的應(yīng)用:2.2基本數(shù)據(jù)類型//聲明和初始化一個(gè)char變量charc='A';System.out.println("Charactervalue:"+c);//使用轉(zhuǎn)義序列charnewline='\n';System.out.println("Newlinecharacter:"+newline+"See?");//使用Unicode值charunicodeChar='\u0041';System.out.println("Unicodecharacter:"+unicodeChar);2.2基本數(shù)據(jù)類型例題2.1課程視頻時(shí)間的計(jì)算在當(dāng)前的在線教育環(huán)境中,學(xué)生們需要通過觀看視頻來學(xué)習(xí)各種知識(shí)。某一個(gè)在線教育平臺(tái)上的一門課程包含10個(gè)視頻,每個(gè)視頻的長(zhǎng)度分別為15分鐘、20分鐘、30分鐘、25分鐘、18分鐘、22分鐘、26分鐘、35分鐘、28分鐘和32分鐘。要求是編寫一個(gè)程序,計(jì)算學(xué)生觀看整個(gè)課程的視頻需要多少小時(shí)。在例2.1中,代碼首先定義了每個(gè)視頻的長(zhǎng)度(以分鐘為單位),然后將所有視頻的長(zhǎng)度相加,得出總的視頻長(zhǎng)度。接著,將總的視頻長(zhǎng)度轉(zhuǎn)換為小時(shí)。最后,輸出學(xué)生觀看整個(gè)課程視頻所需的總時(shí)間(以小時(shí)為單位)。2.2基本數(shù)據(jù)類型
類型轉(zhuǎn)換類型轉(zhuǎn)換在編程領(lǐng)域中起到了不可或缺的作用,它能夠靈活地變換數(shù)據(jù)類型。類型轉(zhuǎn)換可以分為隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。隱式轉(zhuǎn)換通常在較小的數(shù)據(jù)類型賦值給較大的類型時(shí)自動(dòng)進(jìn)行,而顯式轉(zhuǎn)換則需要明確指示。通過類型轉(zhuǎn)換,能夠增強(qiáng)代碼的適應(yīng)性和操作范圍,確保各類數(shù)據(jù)源的兼容性。然而,在進(jìn)行類型轉(zhuǎn)換時(shí),需要特別謹(jǐn)慎。特別是在顯式類型轉(zhuǎn)換時(shí),如果不當(dāng)操作可能導(dǎo)致數(shù)據(jù)丟失。因此,合理利用類型轉(zhuǎn)換能夠提升代碼效率和靈活性,但同時(shí)也需要注意避免潛在的數(shù)據(jù)丟失風(fēng)險(xiǎn)。2.2基本數(shù)據(jù)類型以下是對(duì)類型轉(zhuǎn)換的應(yīng)用://隱式類型轉(zhuǎn)換intmyInt=10;doublemyDouble=myInt;//一個(gè)整數(shù)自動(dòng)轉(zhuǎn)換為一個(gè)雙精度浮點(diǎn)數(shù)System.out.println(myDouble);//輸出10.0//顯式類型轉(zhuǎn)換doubleanotherDouble=9.78;intanotherInt=(int)anotherDouble;//一個(gè)雙精度浮點(diǎn)數(shù)被強(qiáng)制轉(zhuǎn)換為一個(gè)整數(shù)System.out.println(anotherInt);//輸出9,因?yàn)樾?shù)部分被截?cái)?.2基本數(shù)據(jù)類型
字面量與常量
字面量(Literal):字面量是指直接在Java源代碼中出現(xiàn)的固定值。它們可以是整型、浮點(diǎn)型、字符型、布爾型或字符串型的值。字面量在程序編譯時(shí)就已經(jīng)確定,并且在運(yùn)行時(shí)不會(huì)被改變。例如:inta=5;//整型字面量doubleb=3.14;//浮點(diǎn)型字面量charc='A';//字符型字面量booleand=true;//布爾型字面量Stringe="HelloWorld";//字符串型字面量2.2基本數(shù)據(jù)類型
2.常量(Constant):常量是指被聲明為final的變量,它們?cè)诔跏蓟笃渲挡荒鼙桓淖?。常量必須在聲明時(shí)進(jìn)行初始化,而且只能初始化一次。常量的值可以是字面量,也可以是其他類型的常量表達(dá)式。例如:publicstaticfinalintPI=3;//整型常量publicstaticfinalStringVersion="1.0";//字符串型常量publicstaticfinaldoubleEULER=2.718281828459045;//浮點(diǎn)型常量字面量是源代碼中直接出現(xiàn)的固定值,如整數(shù)、浮點(diǎn)數(shù)、字符、布爾值或字符串,它們?cè)诰幾g時(shí)確定,并在運(yùn)行時(shí)不可變。常量則是被聲明為final的變量,其值在初始化后也不可改變。字面量可以作為常量的一種形式,它們都表示程序中的不變量。字面量在編譯時(shí)就已經(jīng)確定,而常量在類加載時(shí)被初始化。此外,字面量通常存儲(chǔ)在常量池中,可以被多個(gè)類或接口共享。2.2基本數(shù)據(jù)類型
例題2.2公園面積的計(jì)算北京奧林匹克公園是2008年北京奧運(yùn)會(huì)的主要場(chǎng)館區(qū),占地面積大約680公頃。公園的設(shè)計(jì)大致呈長(zhǎng)方形形狀,長(zhǎng)邊約為2.2公里,短邊約為1.8公里。由于地球的曲率,實(shí)際測(cè)量的面積會(huì)稍微小于理論的平方公里數(shù)。為了精確計(jì)算這個(gè)差異,公園的設(shè)計(jì)師們定義了一個(gè)常量AREA_ADJUSTMENT_FACTOR,其值為0.9997。要求是編寫一個(gè)程序,計(jì)算并打印出這個(gè)公園的理論和實(shí)際面積(單位為平方公里和平方米),以及周長(zhǎng)(單位為公里和米)。2.2基本數(shù)據(jù)類型
2.2基本數(shù)據(jù)類型在例2.2中,首先定義了三個(gè)常量,分別表示北京奧林匹克公園的長(zhǎng)、寬以及面積調(diào)整因子。然后,計(jì)算了公園的理論面積和周長(zhǎng)。接著,根據(jù)面積調(diào)整因子計(jì)算出了公園的實(shí)際面積。最后,代碼將面積和周長(zhǎng)的單位從公里和平方公里轉(zhuǎn)換為米和平方米,并打印出了理論面積、實(shí)際面積和周長(zhǎng)的結(jié)果。
例題2.2公園面積的計(jì)算北京奧林匹克公園是2008年北京奧運(yùn)會(huì)的主要場(chǎng)館區(qū),占地面積大約680公頃。公園的設(shè)計(jì)大致呈長(zhǎng)方形形狀,長(zhǎng)邊約為2.2公里,短邊約為1.8公里。由于地球的曲率,實(shí)際測(cè)量的面積會(huì)稍微小于理論的平方公里數(shù)。為了精確計(jì)算這個(gè)差異,公園的設(shè)計(jì)師們定義了一個(gè)常量AREA_ADJUSTMENT_FACTOR,其值為0.9997。要求是編寫一個(gè)程序,計(jì)算并打印出這個(gè)公園的理論和實(shí)際面積(單位為平方公里和平方米),以及周長(zhǎng)(單位為公里和米)。2.2基本數(shù)據(jù)類型
變量、聲明和賦值
在編程中,變量的聲明與賦值占據(jù)著至關(guān)重要的地位。變量可以被視為存儲(chǔ)數(shù)據(jù)的容器,使我們能夠在程序中保存和操作數(shù)據(jù)。通過聲明變量,我們告訴計(jì)算機(jī)需要一個(gè)特定類型的數(shù)據(jù)存儲(chǔ)空間;而通過賦值,我們將實(shí)際數(shù)據(jù)放入已聲明的變量中,以便進(jìn)行后續(xù)的處理和應(yīng)用。例題2.3探險(xiǎn)家的收獲在一個(gè)遠(yuǎn)離塵世的星球上,存在兩種珍稀的寶石,一種叫做"星輝石",另一種叫做"月影石"。一位勇敢的探險(xiǎn)家,決定去尋找這兩種寶石。在Java中,聲明兩個(gè)整型變量,分別命名為starShineGems和moonShadowGems。starShineGems的數(shù)量為5,moonShadowGems的數(shù)量為7。然后,聲明一個(gè)整型變量totalGems,并計(jì)算探險(xiǎn)家找到的所有寶石的總數(shù)。最后,打印出totalGems的值,展示他的豐富收獲。2.2基本數(shù)據(jù)類型
例題2.3探險(xiǎn)家的收獲1ChatGPT指令:
//聲明兩個(gè)整型變量,分別命名為starShineGems和moonShadowGems。starShineGems的數(shù)量為5,moonShadowGems的數(shù)量為7。然后,聲明一個(gè)整型變量totalGems來存儲(chǔ)starShineGems和moonShadowGems的和,然后打印totalGems的結(jié)果。輸出結(jié)果如下:Totalgemscollected:12
總而言之,變量的聲明與賦值就如同社會(huì)主義建設(shè)中的目標(biāo)設(shè)定與實(shí)際行動(dòng)。我們需要明確的目標(biāo)(聲明變量)和實(shí)際行動(dòng)(賦值操作)來實(shí)現(xiàn)社會(huì)主義現(xiàn)代化夢(mèng)想。在編程的世界里,我們也能體驗(yàn)到設(shè)定目標(biāo)和采取實(shí)際行動(dòng)的重要性。03復(fù)合數(shù)據(jù)類型2.3復(fù)合數(shù)據(jù)類型
1.類(Class):類是Java中的核心復(fù)合數(shù)據(jù)類型,它的設(shè)計(jì)源自面向?qū)ο缶幊痰母拍?。在早期的程序設(shè)計(jì)中,需要在不同的地方處理數(shù)據(jù)并對(duì)其進(jìn)行操作,這導(dǎo)致了代碼的重復(fù)和難以維護(hù)。為了解決這個(gè)問題,人們提出了面向?qū)ο蟮木幊谭椒?,將?shù)據(jù)和操作數(shù)據(jù)的方法封裝在一起,形成了類的概念。在Java中,類可以包含字段(也就是變量)和方法,這使得可以創(chuàng)建更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以滿足更復(fù)雜的業(yè)務(wù)需求。2.數(shù)組(Array):數(shù)組是一種基本的復(fù)合數(shù)據(jù)類型,它的設(shè)計(jì)源于早期編程語言中數(shù)組的概念。在早期的編程語言中,如果需要存儲(chǔ)多個(gè)同一類型的數(shù)據(jù),就需要聲明多個(gè)變量,這無疑增加了代碼的復(fù)雜性。為了解決這個(gè)問題,人們?cè)O(shè)計(jì)了數(shù)組的概念,可以用一個(gè)變量名來存儲(chǔ)多個(gè)同一類型的數(shù)據(jù)。2.3復(fù)合數(shù)據(jù)類型
3.接口(Interface):接口是一種復(fù)合數(shù)據(jù)類型,它的設(shè)計(jì)源于面向?qū)ο缶幊讨械亩鄳B(tài)性概念。在面向?qū)ο缶幊讨?,為了增加代碼的復(fù)用性和靈活性,人們提出了多態(tài)性的概念,即一個(gè)對(duì)象可以有多種形態(tài)。接口定義了一種規(guī)范,規(guī)定了實(shí)現(xiàn)該接口的類必須要實(shí)現(xiàn)哪些方法,這就為實(shí)現(xiàn)多態(tài)性提供了可能。4.枚舉(Enum):枚舉是Java5.0版本引入的復(fù)合數(shù)據(jù)類型,它的設(shè)計(jì)源于人們對(duì)于限制變量取值范圍的需求。在早期的編程語言中,如果需要限制一個(gè)變量的取值范圍,就需要編寫大量的驗(yàn)證代碼,這無疑增加了代碼的復(fù)雜性。為了解決這個(gè)問題,引入了枚舉的概念,可以定義一組預(yù)設(shè)的常量,使得變量只能取這些預(yù)設(shè)的值。08本章小結(jié)本章小結(jié)標(biāo)識(shí)符:用來命名變量、方法、類等。標(biāo)識(shí)符必須遵循特定的命名規(guī)則和約定,例如,不能以數(shù)字開頭,不能使用關(guān)鍵字等?;緮?shù)據(jù)類型:Java有8種基本數(shù)據(jù)類型,包括整數(shù)類型(byte,short,int,long)、浮點(diǎn)類型(float,double)、字符類型(char)和布爾類型(boolean)。每種類型都有其特定的值范圍和內(nèi)存大小。變量:聲明變量的類型并初始化它們才能使用,其值是可以改變的。常量:常量是只能被賦值一次的變量。使用final關(guān)鍵字定義常量。常量的命名通常使用全大寫字母。類型轉(zhuǎn)換:自動(dòng)類型轉(zhuǎn)換(小范圍類型到大范圍類型的轉(zhuǎn)換)和強(qiáng)制類型轉(zhuǎn)換(大范圍類型到小范圍類型的轉(zhuǎn)換)。引用數(shù)據(jù)類型:除了基本數(shù)據(jù)類型,Java還支持引用數(shù)據(jù)類型,包括類、接口和數(shù)組。引用類型和基本類型的主要區(qū)別在于引用類型的變量存儲(chǔ)的是對(duì)象在內(nèi)存中的地址,而基本類型的變量直接存儲(chǔ)值。表達(dá)式和流程控制語句第三章ExpressionsandFlowcontrolstatements目標(biāo)/OBJECTIVE010203掌握表達(dá)式的相關(guān)知識(shí)熟悉流程控制語句學(xué)習(xí)簡(jiǎn)單的輸入輸出01表達(dá)式的相關(guān)知識(shí)3.1表達(dá)式的相關(guān)知識(shí)表達(dá)式是由運(yùn)算符、變量、常量和方法調(diào)用等組成的代碼片段,可以計(jì)算出一個(gè)值。表達(dá)式就像數(shù)學(xué)中的公式一樣,可以進(jìn)行各種運(yùn)算,比如加減乘除等。假設(shè)這有兩個(gè)變量x和y,可以使用表達(dá)式x+y來計(jì)算它們的和。這個(gè)表達(dá)式會(huì)將變量x和y相加,并返回它們的和作為結(jié)果。1.常量常量是一種特殊的變量,其值在定義后不能被修改。常量的定義通常使用final關(guān)鍵字,后跟變量類型和變量名。常量名通常全部大寫,如果由多個(gè)單詞組成,單詞之間用下劃線分隔?!げ僮鲾?shù)3.1表達(dá)式的相關(guān)知識(shí)2.變量變量是用來存儲(chǔ)數(shù)據(jù)的容器。每個(gè)變量都有一個(gè)數(shù)據(jù)類型,這決定變量可以存儲(chǔ)什么樣的數(shù)據(jù)(例如整數(shù)、浮點(diǎn)數(shù)、字符或布爾值)。變量在使用之前要進(jìn)行變量聲明,變量聲明的基本格式為:如下所示:在該例子中,age,salary,initial,isMarried和name都是變量,它們的值可以在程序運(yùn)行過程中被修改。3.1表達(dá)式的相關(guān)知識(shí)1Copilot指令:3.變量初始化變量初始化是指為變量分配一個(gè)初始值的過程。在Java中,所有的變量在使用前都必須初始化。變量可以在聲明時(shí)初始化,也可以在聲明后的任何地方初始化。如果在聲明時(shí)沒有初始化變量,那么變量的值將是其數(shù)據(jù)類型的默認(rèn)值。例如,對(duì)于整數(shù)類型,這個(gè)默認(rèn)值是0;對(duì)于布爾類型,這個(gè)默認(rèn)值是false;對(duì)于對(duì)象引用,這個(gè)默認(rèn)值是null。以下是Java變量初始化的示例:4.變量作用域變量的作用域是指變量存在和可用的范圍。根據(jù)變量聲明的位置,可以將變量的作用域分為以下幾種:(1)局部變量:在方法、構(gòu)造函數(shù)或者塊中聲明的變量被稱為局部變量。局部變量只在其聲明的區(qū)域內(nèi)有效,一旦超出這個(gè)區(qū)域,這個(gè)變量就會(huì)立即消失,無法再被訪問。(2)成員變量(實(shí)例變量):在類中但不在方法、構(gòu)造函數(shù)或塊外部聲明的變量被稱為成員變量。成員變量在整個(gè)類中都是可見的。成員變量的值對(duì)每個(gè)類的實(shí)例都是唯一的。(3)類變量(靜態(tài)變量):在類中以static關(guān)鍵字聲明的變量被稱為類變量。類變量在整個(gè)類中都是可見的,無論類是否被實(shí)例化。類變量只有一份拷貝,被類的所有實(shí)例共享。3.1表達(dá)式的相關(guān)知識(shí)·運(yùn)算符Java中的運(yùn)算符和C語言中的運(yùn)算符類似,有關(guān)系運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符、條件運(yùn)算符、類型比較運(yùn)算符、特殊運(yùn)算符等。1.算數(shù)運(yùn)算符算術(shù)運(yùn)算符用于執(zhí)行基本的數(shù)學(xué)運(yùn)算,如加法(+)、減法(-)、乘法(*)、除法(/)和模數(shù)運(yùn)算(%)。具體如下所示:3.1表達(dá)式的相關(guān)知識(shí)2.關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于比較兩個(gè)操作數(shù),如等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。運(yùn)算結(jié)果是一個(gè)邏輯值(true或false)。如下所示:3.1表達(dá)式的相關(guān)知識(shí)3.邏輯運(yùn)算符邏輯運(yùn)算符用于基于兩個(gè)或更多條件的邏輯關(guān)系來形成更復(fù)雜的條件。邏輯運(yùn)算符包括邏輯與運(yùn)算符(&&)、邏輯或運(yùn)算符(||)、邏輯非運(yùn)算符(!),其運(yùn)算結(jié)果是一個(gè)邏輯值(true或false)。如下所示:3.1表達(dá)式的相關(guān)知識(shí)4.位運(yùn)算符位運(yùn)算符用來對(duì)二進(jìn)制數(shù)進(jìn)行操作,它包括按位與運(yùn)算符(&)、按位或運(yùn)算符(|)、按位異或運(yùn)算符(^)、按位非運(yùn)算符(~)、左移運(yùn)算符(<<)、右移運(yùn)算符(>>)、無符號(hào)右移運(yùn)算符(>>>),位運(yùn)算符只能對(duì)整型和字符型數(shù)據(jù)進(jìn)行操作。3.1表達(dá)式的相關(guān)知識(shí)5.賦值運(yùn)算符賦值運(yùn)算符用于將右側(cè)操作數(shù)的值賦給左側(cè)的操作數(shù),賦值運(yùn)算符有“=”、“+=”、“-=、“%=”、“/=”、“*=”、“<<=”、“>>=”、“&=”、“|=”、“^=”。6.條件運(yùn)算符條件運(yùn)算符也被稱為三元運(yùn)算符,是唯一需要三個(gè)操作數(shù)的運(yùn)算符。它的一般形式是:如果condition為真(即,結(jié)果為非零),則表達(dá)式的結(jié)果是value1,否則結(jié)果是value2。3.1表達(dá)式的相關(guān)知識(shí)7.類型比較運(yùn)算符類型比較運(yùn)算符是instanceof。它用于檢查一個(gè)對(duì)象是否是一個(gè)特定類型(類或接口)的實(shí)例。以下是一個(gè)示例代碼:在這個(gè)例子中,我們使用instanceof運(yùn)算符來檢查str是否是String類的實(shí)例。因?yàn)閟tr是一個(gè)字符串,所以結(jié)果是true。3.1表達(dá)式的相關(guān)知識(shí)8.特殊運(yùn)算符在Java中,有一些特殊的運(yùn)算符,常見的是以下類型:(1).(點(diǎn)運(yùn)算符):用于訪問對(duì)象的成員變量和方法。(2)[](數(shù)組訪問運(yùn)算符):用于訪問數(shù)組元素。(3)()(方法調(diào)用運(yùn)算符):用于調(diào)用方法。(4)new:用于創(chuàng)建新的對(duì)象實(shí)例。9.運(yùn)算符的優(yōu)先次序在表達(dá)式中,運(yùn)算符的優(yōu)先級(jí)決定運(yùn)算的順序。優(yōu)先級(jí)高的運(yùn)算符會(huì)先被計(jì)算。如果運(yùn)算符的優(yōu)先級(jí)相同,那么通常會(huì)從左到右進(jìn)行計(jì)算(除了賦值運(yùn)算符和條件運(yùn)算符,它們是從右到左計(jì)算)??梢允褂美ㄌ?hào)()來改變運(yùn)算的順序。3.1表達(dá)式的相關(guān)知識(shí)3.1表達(dá)式的相關(guān)知識(shí)·表達(dá)式的提升和轉(zhuǎn)換在Java中,表達(dá)式的提升和轉(zhuǎn)化是指在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)需要轉(zhuǎn)化為同一種類型才能進(jìn)行運(yùn)算。這種轉(zhuǎn)化遵循一定的規(guī)則,稱為類型提升規(guī)則。以下是Java中的類型提升規(guī)則:如果兩個(gè)操作數(shù)中有一個(gè)是double類型,另一個(gè)操作數(shù)就會(huì)轉(zhuǎn)化為double類型。如果兩個(gè)操作數(shù)中有一個(gè)是float類型,另一個(gè)操作數(shù)就會(huì)轉(zhuǎn)化為float類型。如果兩個(gè)操作數(shù)中有一個(gè)是long類型,另一個(gè)操作數(shù)就會(huì)轉(zhuǎn)化為long類型。否則,兩個(gè)操作數(shù)都會(huì)轉(zhuǎn)化為int類型。注意,這些規(guī)則只適用于數(shù)值類型。對(duì)于非數(shù)值類型(如布爾類型和對(duì)象類型),不能進(jìn)行這種類型的提升和轉(zhuǎn)化。3.1表達(dá)式的相關(guān)知識(shí)02流程控制語句3.2流程控制語句流程控制語句允許人根據(jù)條件來控制程序的執(zhí)行流程,就像是給程序添加決策能力。我們可以使用條件語句來根據(jù)不同的條件執(zhí)行不同的代碼塊。比如,可以使用if語句來判斷某個(gè)條件是否成立,如果條件為真,就執(zhí)行相應(yīng)的代碼塊;如果條件為假,就跳過這個(gè)代碼塊。這就像是在路口上看到紅燈就停車,綠燈就繼續(xù)前進(jìn)一樣。除了條件語句,還有循環(huán)語句等等。下面介紹幾種類型的語句,包括表達(dá)式語句、塊、分支語句和循環(huán)語句。3.2流程控制語句表達(dá)式語句表達(dá)式是由運(yùn)算符、變量、常量和方法調(diào)用等組成的代碼片段,它可以計(jì)算出一個(gè)值。在Java中,幾乎所有的語句都可以作為表達(dá)式語句,包括賦值語句、方法調(diào)用語句和增量/減量語句等。表達(dá)式語句通常包括以下幾種:1.賦值表達(dá)式:例如a=b,a+=b,a*=b等。2.遞增和遞減表達(dá)式:例如a++,a--,++a,--a。3.方法調(diào)用:例如System.out.println("Hello,World!")。4.對(duì)象創(chuàng)建表達(dá)式:例如newMyClass()。3.2流程控制語句塊在Java中,塊是由大括號(hào){}包圍的一組零個(gè)或多個(gè)語句。塊可以用在任何允許使用單個(gè)語句的地方。塊主要用于組織和控制代碼的結(jié)構(gòu),特別是在控制流語句(如if,for,while等)中。塊可以嵌套,即一個(gè)塊可以包含另一個(gè)塊。塊也定義了變量的作用域,即在塊內(nèi)部定義的變量只在該塊及其子塊中可見。接下來是一個(gè)有關(guān)“塊”的代碼。塊的存在使得代碼可以更加有組織性和可讀性。它們可以將相關(guān)的代碼段組合在一起,并限制變量的作用范圍,避免命名沖突。此外,塊還可以用于控制流程,例如在條件語句中執(zhí)行多個(gè)語句或在循環(huán)中執(zhí)行多個(gè)語句。需要注意的是,塊本身并不是一個(gè)獨(dú)立的語句,它只是一種容器,用于組織和限定代碼的執(zhí)行范圍。在大多數(shù)情況下,塊中的語句會(huì)按照順序依次執(zhí)行,除非遇到控制流語句(如break、continue、return等)或異常。3.2流程控制語句3.2流程控制語句分支結(jié)構(gòu)在Java中,分支語句用于根據(jù)條件來選擇不同的執(zhí)行路徑。Java提供幾種分支語句,包括if語句、if-else語句、if-elseif語句和switch語句。分支結(jié)構(gòu)包括單分支結(jié)構(gòu)、雙分支結(jié)構(gòu)以及多分支結(jié)構(gòu),如圖3-1、圖3-2、圖3-3所示:Java中的分支結(jié)構(gòu)主要包括if語句、if-else語句、else-if-else語句和switch結(jié)構(gòu)。這種結(jié)構(gòu)根據(jù)條件的成立與否,來執(zhí)行相應(yīng)的代碼塊。3.2流程控制語句1.if語句if語句用于根據(jù)一個(gè)條件來執(zhí)行不同的代碼塊。如果條件為true,則執(zhí)行if語句塊中的代碼;如果條件為false,則跳過if語句塊。if語句的基本格式:2.if-else語句 if-else語句在if語句的基礎(chǔ)上增加一個(gè)"else"分支,用于在條件為false時(shí)執(zhí)行另一段代碼。3.2流程控制語句if-else語句的基本格式:3.if-else-if語句 if-else-if語句可以用于測(cè)試多個(gè)條件,并在滿足條件時(shí)執(zhí)行相應(yīng)的代碼塊。它可以有多個(gè)"else-if"分支和一個(gè)可選的"else"分支。if-else-if語句的基本格式:3.2流程控制語句分支語句中的條件表達(dá)式必須是一個(gè)布爾類型的值或可以轉(zhuǎn)換為布爾類型的值。在if語句和if-else語句中,條件為true時(shí)執(zhí)行相應(yīng)代碼塊。4.switch語句在Java中,switch語句是一種多路分支語句,它可以根據(jù)一個(gè)表達(dá)式的值來決定執(zhí)行哪段代碼。switch語句包含多個(gè)case,每個(gè)case對(duì)應(yīng)一個(gè)可能的值和一段代碼。如果表達(dá)式的值與某個(gè)case的值匹配,那么對(duì)應(yīng)的代碼就會(huì)被執(zhí)行。如果沒有任何case與表達(dá)式的值匹配,那么default后面的代碼會(huì)被執(zhí)行。3.2流程控制語句switch語句的基本格式:3.2流程控制語句·循環(huán)語句循環(huán)語句是一種非常有用的工具,在Java編程語言中,循環(huán)語句就像是一位勤奮的音樂指揮,他指揮著樂曲的重復(fù)演奏,直到滿足結(jié)束的條件。循環(huán)語句有幾種不同的形式,每一種都有其獨(dú)特的魅力。有三種主要的循環(huán)語句:for循環(huán)、while循環(huán)和do-while循環(huán)。它們各自具有不同的特點(diǎn)和適用場(chǎng)景,讓我們一起來探索它們的魅力。1.for循環(huán)for循環(huán)是一種常用的循環(huán)結(jié)構(gòu),它在執(zhí)行循環(huán)之前初始化循環(huán)變量,然后判斷循環(huán)條件是否滿足,如果滿足則執(zhí)行循環(huán)體中的代碼,并更新循環(huán)變量的值。循環(huán)體執(zhí)行完畢后,再次判斷條件是否滿足,如果滿足則繼續(xù)執(zhí)行循環(huán)體,直到條件不滿足時(shí)循環(huán)結(jié)束。3.2流程控制語句for循環(huán)的基本格式:2.while循環(huán)while循環(huán)在執(zhí)行循環(huán)體之前先判斷條件是否滿足,如果條件滿足,則執(zhí)行循環(huán)體中的代碼。當(dāng)循環(huán)體執(zhí)行完畢后,再次判斷條件是否滿足,如果滿足,則繼續(xù)執(zhí)行循環(huán)體,直到條件不滿足時(shí)循環(huán)結(jié)束。while循環(huán)的基本格式:3.2流程控制語句3.do-while循環(huán)do-while循環(huán)與while循環(huán)類似,不同之處在于它先執(zhí)行一次循環(huán)體,再判斷條件是否滿足。如果條件滿足,則繼續(xù)執(zhí)行循環(huán)體,直到條件不滿足時(shí)循環(huán)結(jié)束。do-while循環(huán)的基本格式:3.2流程控制語句·continue和break語句在Java中,continue和break都是循環(huán)控制語句。break語句像是一部電影的停止按鈕。當(dāng)循環(huán)遇到break語句時(shí),它會(huì)立即結(jié)束整個(gè)循環(huán),就像你在看電影時(shí),如果覺得電影不好看,可以按下停止按鈕,結(jié)束觀看。continue語句像是一部電影的快進(jìn)按鈕。當(dāng)循環(huán)遇到continue語句時(shí),它會(huì)立即跳過當(dāng)前循環(huán)的剩余部分,并開始下一次循環(huán)。就像你在看電影時(shí),如果遇到了不感興趣的部分,可以按下快進(jìn)按鈕,跳過這部分,直接開始下一段精彩的內(nèi)容。1.標(biāo)號(hào)在Java中,標(biāo)號(hào)(label)是可選的,通常與循環(huán)語句一起使用,以提供一個(gè)額外的級(jí)別的循環(huán)控制。其基本格式是:3.2流程控制語句2.break語句break語句的主要作用是立即終止當(dāng)前的循環(huán)或開關(guān)語句,并跳出該語句的執(zhí)行。它可以運(yùn)用到stwich語句、循環(huán)語句和塊語句中。例如:在這個(gè)例子中,當(dāng)i等于5時(shí),break語句會(huì)被執(zhí)行,整個(gè)循環(huán)會(huì)立即結(jié)束,System.out.println(i);不會(huì)被執(zhí)行。3.2流程控制語句break標(biāo)號(hào)如下所示:在這個(gè)例子中,有兩個(gè)嵌套的for循環(huán),外部循環(huán)有一個(gè)標(biāo)號(hào)outer(標(biāo)號(hào)名稱)。當(dāng)j等于3時(shí),breakouter;語句會(huì)被執(zhí)行,這會(huì)跳出outer循環(huán),即結(jié)束整個(gè)外部循環(huán)。3.2流程控制語句3.continue語句continue語句的主要作用是跳過當(dāng)前迭代中的剩余代碼,并開始下一次迭代。它可以幫助我們?cè)谔囟l件下忽略一部分代碼,提高代碼的靈活性和可讀性。在循環(huán)中,當(dāng)遇到continue語句時(shí),它會(huì)立即終止當(dāng)前迭代的循環(huán),并跳過循環(huán)體中continue語句之后的代碼,直接進(jìn)入下一次迭代。例如:在這個(gè)例子中,當(dāng)i是偶數(shù)時(shí),continue語句會(huì)被執(zhí)行,System.out.println(i);會(huì)被跳過,直接開始下一次循環(huán)。3.2流程控制語句continue標(biāo)號(hào)如下所示:在這個(gè)例子中,有兩個(gè)嵌套的for循環(huán),外部循環(huán)有一個(gè)標(biāo)號(hào)outer(標(biāo)號(hào)名稱)。當(dāng)j等于3時(shí),continueouter;語句會(huì)被執(zhí)行,這會(huì)跳過outer循環(huán)的當(dāng)前迭代,即跳過當(dāng)i等于當(dāng)前值,j從3到4的所有循環(huán)。3.2流程控制語句03簡(jiǎn)單的輸入輸出3.3簡(jiǎn)單的輸入輸出Scanner類在Java中,輸入和輸出是與用戶交互和顯示結(jié)果的重要部分。它們?yōu)槌绦蛸x予了生命和靈魂,讓程序能夠與用戶進(jìn)行互動(dòng)。輸入是從外部世界(用戶)獲取數(shù)據(jù)的過程,就像是從大海中捕撈寶貴的珍珠。Java中最常用的輸入方式是通過控制臺(tái)進(jìn)行輸入。Scanner類是Java中用于讀取輸入數(shù)據(jù)的工具類,它提供方便的方法來解析基本類型和字符串等數(shù)據(jù)。它可以從多種來源讀取數(shù)據(jù),包括控制臺(tái)輸入、文件和字符串等。使用Scanner類,可以輕松地獲取用戶的輸入,并將其轉(zhuǎn)換為適當(dāng)?shù)臄?shù)據(jù)類型。它提供了一系列的nextXxx()方法,其中Xxx代表不同的數(shù)據(jù)類型,如nextInt()、nextDouble()和nextLine()等。下面是一個(gè)簡(jiǎn)單的示例,演示如何使用Scanner類從控制臺(tái)讀取用戶的輸入:在左邊的示例中,首先創(chuàng)建一個(gè)Scanner對(duì)象,并將System.in作為輸入源,表示從控制臺(tái)讀取輸入。然后,通過調(diào)用nextLine()方法讀取用戶輸入的姓名,并將其存儲(chǔ)到name變量中。接下來,通過調(diào)用nextInt()方法讀取用戶輸入的年齡,并將其存儲(chǔ)到age變量中。最后,將用戶的姓名和年齡輸出到控制臺(tái)。需要注意的是,在使用Scanner類讀取完數(shù)據(jù)后,應(yīng)該調(diào)用close()方法關(guān)閉Scanner對(duì)象,以釋放資源。3.3簡(jiǎn)單的輸入輸出·NumberFormat類和DecimalFormat類NumberFormat類是一個(gè)抽象類,它提供格式化和解析數(shù)字的通用功能。它可以用于格式化整數(shù)、浮點(diǎn)數(shù)和貨幣等數(shù)字類型。NumberFormat類提供靜態(tài)方法getInstance(),該方法根據(jù)當(dāng)前本地化環(huán)境返回適當(dāng)?shù)腘umberFormat實(shí)例。通過NumberFormat類,可以將數(shù)字格式化為本地化的字符串表示形式,或者將字符串解析為對(duì)應(yīng)的數(shù)字。DecimalFormat類是NumberFormat類的一個(gè)子類,它提供更精細(xì)的數(shù)字格式化控制。DecimalFormat類可以根據(jù)指定的模式將數(shù)字格式化為字符串,并且可以使用特定的符號(hào)、小數(shù)位數(shù)、分組分隔符等來自定義格式。它還支持解析字符串,并將其轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字。3.3簡(jiǎn)單的輸入輸出下面是一個(gè)簡(jiǎn)單的示例,演示了如何使用DecimalFormat類來格式化和解析數(shù)字:3.3簡(jiǎn)單的輸入輸出在這個(gè)示例中,使用DecimalFormat類創(chuàng)建一個(gè)格式化模式"#,##0.00",它指定了使用逗號(hào)作為分組分隔符,保留兩位小數(shù)。然后,將一個(gè)數(shù)字12345.6789格式化為字符串,并輸出格式化后的結(jié)果。接著,嘗試解析這個(gè)格式化后的字符串,并將其轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字。最后,輸出解析后的數(shù)字。通過NumberFormat類和DecimalFormat類,可以方便地對(duì)數(shù)字進(jìn)行格式化和解析,使其更符合特定的顯示需求。這些類提供靈活的選項(xiàng)和功能,可以滿足不同場(chǎng)景下的數(shù)字格式化需求。3.3簡(jiǎn)單的輸入輸出04本章小結(jié)本章小結(jié)1.常量是一種特殊的變量,其值在定義后不能被修改。2.變量是用于存儲(chǔ)和操作數(shù)據(jù)的內(nèi)存空間,它具有特定的數(shù)據(jù)類型和可變的值。3.運(yùn)算符是用于執(zhí)行各種算術(shù)、邏輯和位操作的符號(hào)或關(guān)鍵字,用于對(duì)數(shù)據(jù)進(jìn)行計(jì)算、比較和賦值等操作。4.表達(dá)式的提升是指在運(yùn)算過程中將低精度的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換為高精度的數(shù)據(jù)類型,以保證運(yùn)算的準(zhǔn)確性和一致性。5.表達(dá)式的轉(zhuǎn)換是指將一個(gè)數(shù)據(jù)類型的值轉(zhuǎn)換為另一個(gè)數(shù)據(jù)類型的值,以滿足特定的需求或操作要求。6.塊是Java中用花括號(hào)
{}
括起來的一組語句,它可以作為一個(gè)獨(dú)立的執(zhí)行單元,用于控制程序的流程、作用域和代碼組織。7.分支語句是根據(jù)條件的真假來選擇性地執(zhí)行不同的代碼塊,用于根據(jù)不同的條件決定程序的執(zhí)行路徑。8.循環(huán)語句是根據(jù)條件的真假重復(fù)執(zhí)行一段代碼塊,用于反復(fù)執(zhí)行相同或類似的任務(wù),實(shí)現(xiàn)程序的重復(fù)性操作和迭代。9.注釋語句是在代碼中添加的特殊文本,用于對(duì)代碼進(jìn)行解釋、說明和注解,不會(huì)被編譯器執(zhí)行,提高代碼的可讀性和可維護(hù)性。10.簡(jiǎn)單的輸入輸出是指通過讀取用戶的輸入和將結(jié)果輸出到控制臺(tái),實(shí)現(xiàn)與用戶交互和顯示程序的執(zhí)行結(jié)果。數(shù)組和向量arraysandvectors第四章目錄0102
數(shù)組
向量0101
數(shù)組4.1數(shù)組4.1.1創(chuàng)建數(shù)組在Java中,創(chuàng)建數(shù)組需要進(jìn)行定義和初始化兩個(gè)步驟。在定義一個(gè)數(shù)組后,只是聲明了一個(gè)變量來引用數(shù)組,此時(shí)并沒有為數(shù)組分配任何內(nèi)存空間,因此不能夠直接訪問數(shù)組的元素。為了能夠正確使用數(shù)組,需要對(duì)其進(jìn)行初始化。在初始化過程中,需要為數(shù)組分配內(nèi)存空間,并為數(shù)組的每個(gè)元素賦予初始值。在Java中,可以在定義數(shù)組時(shí)進(jìn)行初始化,也可以在稍后的代碼中進(jìn)行初始化。與C語言不同,Java中的數(shù)組定義時(shí)不需要在方括號(hào)中指定數(shù)組的大小,這是因?yàn)镴ava會(huì)根據(jù)初始化時(shí)提供的元素?cái)?shù)量自動(dòng)推斷數(shù)組的大小。此外,方括號(hào)可以放在數(shù)組名的左邊或右邊,這取決于個(gè)人的編碼風(fēng)格。例如,以下兩種寫法都是合法的:int[]numbers=newint[5];//方括號(hào)在數(shù)組名的右邊intnumbers[]=newint[5];//方括號(hào)在數(shù)組名的左邊4.1數(shù)組數(shù)組的初始化包括靜態(tài)初始化和動(dòng)態(tài)初始化,靜態(tài)初始化就是在創(chuàng)建時(shí)直接放入數(shù)據(jù),動(dòng)態(tài)初始化則是在創(chuàng)建時(shí)指明動(dòng)態(tài)初始化下面是一些通過靜態(tài)初始化正確創(chuàng)建數(shù)組的示例。//創(chuàng)建一個(gè)int類型的數(shù)組int[]intArray={1,2,3,4,5};//創(chuàng)建一個(gè)String類型的數(shù)組String[]stringArray={"Hello","World","Java","is","fun"};//創(chuàng)建一個(gè)float類型的數(shù)組float[]floatArray={1.1f,2.2f,3.3f,4.4f,5.5f};4.1數(shù)組//創(chuàng)建一個(gè)boolean類型的數(shù)組booleanbooleanArray[]={true,false,true,false,true};//創(chuàng)建一個(gè)byte類型的數(shù)組bytebyteArray[]={1,2,3,4,5};動(dòng)態(tài)初始化只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組初始分配值。格式為數(shù)組類[]數(shù)組名=new數(shù)據(jù)類型[數(shù)組長(zhǎng)度],下面是一個(gè)通過動(dòng)態(tài)初始化數(shù)組的范例:int[]arr=newint[3];對(duì)于引用類型的數(shù)組,動(dòng)態(tài)初始化后,數(shù)組中的每個(gè)元素默認(rèn)值是null,表示沒有引用任何對(duì)象。如果想要使用這些元素,必須手動(dòng)創(chuàng)建(實(shí)例化)對(duì)象并賦值給對(duì)應(yīng)的數(shù)組元素。4.1數(shù)組例如:String[]arr=newString[5];//默認(rèn)初始化為null//必須逐一創(chuàng)建數(shù)組里的對(duì)象arr[0]=newString("Hello");arr[1]=newString("World");上述代碼創(chuàng)建了一個(gè)長(zhǎng)度為5的String類型的數(shù)組,然后逐個(gè)創(chuàng)建String對(duì)象并賦值給數(shù)組的元素。Java中數(shù)組的動(dòng)態(tài)初始化會(huì)根據(jù)數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隧道防排水專項(xiàng)施工方案改
- 服裝店買賣合同協(xié)議
- 全新員工忠誠(chéng)承諾與發(fā)展保證
- 便捷辦公服務(wù)協(xié)議
- 分包協(xié)議合同中的權(quán)益保護(hù)
- 政府采購(gòu)合同性質(zhì)的解讀與思考
- 活動(dòng)板房建設(shè)施工招標(biāo)
- 油漆工程承攬協(xié)議范本樣本
- 配電工程招投標(biāo)操作規(guī)范
- 起重機(jī)招標(biāo)文件細(xì)節(jié)解析
- 年產(chǎn)1000萬件日用陶瓷陶瓷廠工藝設(shè)計(jì)
- 新能源汽車概論試題庫及答案
- 城管部門廉潔教育PPT廉潔清風(fēng)進(jìn)城管精華心靈促發(fā)展PPTPPT課件(帶內(nèi)容)
- 年會(huì)小品劇本 搞笑年會(huì)小品劇本;過年
- 小學(xué)廉政教育讀本校本教材
- 2022專精特新小巨人企業(yè)發(fā)展報(bào)告
- GB/T 14361.1-1993船用纖維索滑車木殼滑車
- GB/T 10801.2-2002絕熱用擠塑聚苯乙烯泡沫塑料(XPS)
- ××市××項(xiàng)目復(fù)盤報(bào)告【正式版】課件
- 早期復(fù)極綜合征的再認(rèn)識(shí)課件
- 供水突發(fā)事件應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論