Java基礎(chǔ)實踐教程-Java 語言常用 API_第1頁
Java基礎(chǔ)實踐教程-Java 語言常用 API_第2頁
Java基礎(chǔ)實踐教程-Java 語言常用 API_第3頁
Java基礎(chǔ)實踐教程-Java 語言常用 API_第4頁
Java基礎(chǔ)實踐教程-Java 語言常用 API_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

7.1字符串類7.2日期時間類.7.3Math類與Random類7.4System類與Runtime類7.5包裝類7.6Java語言常用的包7.1字符串類字符串操作是Java編程設(shè)計中的重點,它的應用非常廣。Java語言中定義了String類、StringBuffer類和StringBuilder類,這些類提供了一系列操作字符串的方法。7.1.1String類打開官方在線幫助文檔,搜索String類。String類的基本信息如圖7-1-1所示。由圖7-1-1可知,String類在java.lang包里面,它直接繼承了Object類,實現(xiàn)的接口包括Serializable、CharSequence和Comparable<String>等。其中,Serializable用于對象的序列化,CharSequence提供了字符序列基本操作的抽象方法,Comparable用于比較兩個對象的大小。String類被publicfinal修飾符修飾,因此它是全局可訪問的,但不能夠被繼承。1.String類對象的實例化String類提供了豐富的構(gòu)造方法。其中最基本的構(gòu)造方法如表7-1-1所示,其他構(gòu)造方法是這幾種構(gòu)造方法的擴展。表7-1-1中,第一個構(gòu)造方法使用的是缺省值,第二個和第三個構(gòu)造方法前文介紹過,第四個和第五個構(gòu)造方法使用了字符緩存類對象來構(gòu)建String對象,它的使用方法將在下文中介紹。此外,前文也使用過下面這種方式創(chuàng)建String對象:這種方式與字符串構(gòu)造方法的實例化方式具有較明顯的區(qū)別,例7-1-1體現(xiàn)了這兩種方式的區(qū)別。2.String類常用的方法字符串類提供了豐富的方法,用以對字符串進行查找、分割和替換等操作。讀者可以在幫助文檔中快速瀏覽字符串類的方法。String類常用的方法有20個,如表7-1-2所示。偶爾有些功能方法在用的時候記不清楚了,可以打開幫助文檔仔細查看。下面演示使用官方在線文檔學習的一種方法。首先,打開String類的幫助文檔,找到該類的方法列表。例如,需要查看charAt方法的使用方法,該方法傳入一個int類型的數(shù),返回一個char類型的值,它的功能描述為“Returnsthecharvalueatthespecifiedindex”。由此可知該方法是通過下標值的形式訪問字符串中的某個字符。然后單擊charAt方法名跳轉(zhuǎn)到該方法的詳細描述段落,如圖7-1-4所示,這段描述從方法功能、方法的來源、形參、返回值和可能產(chǎn)生的異常五個方面詳細介紹了charAt方法。在使用charAt方法時,需要注意的是:下標的訪問范圍為[0,length-1],若傳入的形參不在這個范圍內(nèi),則拋出一個IndexOutOfBoundsException異常。在閱讀完幫助文檔后,還可以再深入了解該方法的實現(xiàn)代碼。在Eclipse軟件中打開charAt方法的源代碼,如下所示:在charAt方法中,首先調(diào)用了isLatin1方法判斷該字符串的編碼格式是Latin1還是UTF16,然后針對不同編碼類型分別使用相應的charAt方法進行檢索。其中isLatin1方法和value變量已經(jīng)介紹過。StringLatin1也是一個final類,它的charAt方法源代碼如下:從上述代碼可見,StringLatin1的charAt方法首先判斷下標值index是否在合法的范圍內(nèi)。如果不是,則拋出StringIndexOutOfBoundsException異常;若是,則讀取字符值返回。StringUTF16類的charAt方法代碼也基本相同,只是在方法調(diào)用層次上更多一些,讀者可以自行查看源代碼。這兩個方法是全局靜態(tài)方法,因此可以直接使用類名調(diào)用。需要讀者注意的是,上述源代碼是JDK17中的源代碼,如果讀者使用的是JDK8,則與上面的代碼有所不同,但基本邏輯是相同的。源代碼是學習Java編程非常好的教程,開發(fā)者除了學習基本的語法及方法功能之外,在實際項目設(shè)計中還可以參考它的組織架構(gòu)和基本邏輯。(1)字符串的查詢操作。字符串的查詢操作包括獲取字符串長度、查詢某個下標的字符和查詢某字符的下標,方法返回一個整數(shù)。(2)字符串的轉(zhuǎn)換操作。字符串的轉(zhuǎn)換操作包括將字符串轉(zhuǎn)換成字符數(shù)組、字符大小寫轉(zhuǎn)換、非字符串數(shù)值轉(zhuǎn)換成字符串等,方法返回一個轉(zhuǎn)換后的字符數(shù)組或字符串。(3)字符串的替換操作。字符串的替換操作包括去除空格,將某個子字符串替換為另一個子字符串等,方法返回替換后的字符串。(4)字符串的判斷操作。字符串的判斷操作包括字符串是否為空、是否包含某個子字符串、是否與指定字符串相等等操作,這些操作的方法返回值均為一個布爾類型的值。(5)字符串的截取和分割操作。字符串的截取和分割操作主要包括substring方法和split方法,它們將字符串中的某個字符作為分隔符,將字符串分割成一個字符串數(shù)組并返回。這里尤其要注意的是空字符也可以分割字符串。7.1.2StringBuffer類Java語言中的String類雖然提供了豐富的操作方法,但在刪除和增加字符串內(nèi)容時效率會比較低。為此,Java語言提供了StringBuffer類,它是一種可變字符串類,類似一個字符容器,其長度和內(nèi)容可以隨時動態(tài)地改變。當需要增加或者刪除字符時,StringBuffer類也不會產(chǎn)生新的對象,因此可以高效地處理字符串。StringBuffer也是一個public

final修飾的類,在java.lang包里面,它直接繼承了Object類。在該類中提供了四種構(gòu)造方法,如表7-1-3所示。其中,第一種構(gòu)造方法即默認形參的構(gòu)造方法創(chuàng)建一個初始存儲空間為16個字符的StringBuffer對象,第二種構(gòu)造方法指定了初始存儲空間的大小,第三種和第四種構(gòu)造方法分別使用一個字符序列和字符串填充到對象的存儲空間。在StringBuffer類中同樣提供了豐富的方法來對字符串進行增加、刪除、修改、查找和比較操作。表7-1-4列舉了常用的方法。7.1.3StringBuilder類在Java語言中,除了StringBuffer類是可變長度的字符串類之外,還提供了StringBuilder類。這兩個類的對象在使用的時候都能夠被多次修改,而且不產(chǎn)生新的對象。這兩個類的成員方法名和功能也幾乎相同。它們的區(qū)別在于:StringBuffer是在JDK1.0提出的,它是可變字符串,執(zhí)行效率相對較低,但線程安全;StringBuilder是在JDK5.0提出的,它是可變字符序列,執(zhí)行效率高,但線程不安全。因此在使用時,如果要操作少量的數(shù)據(jù),可以直接使用String類;如果是單線程操作大量的數(shù)據(jù),則推薦使用StringBuilder;如果是多線程操作大量的數(shù)據(jù),則推薦使用StringBuffer。7.2日期時間類在程序設(shè)計中經(jīng)常會用到時間的顯示、格式的轉(zhuǎn)換和時差的計算等問題。為了滿足日期和時間相關(guān)的操作需求,Java語言提供了java.util.Date類、java.text.SimpleDateFormat類和java.util.Calendar類。其中Data類中的大部分方法現(xiàn)在已經(jīng)不建議使用,目前推薦使用Calendar類和SimpleDateFormat類。7.2.1Calendar類Calendar類也叫日歷類,它是一個抽象類,直接繼承自O(shè)bject類。Calendar類的主要功能是把一個特定的時間節(jié)點與一組日歷字段(如年、月、日和時等)進行相互轉(zhuǎn)換,以及實現(xiàn)具體日歷系統(tǒng)的字段和方法。其中某一時間節(jié)點的值是一個毫秒值,是從紀元1970年1月1日00:00:00.000GMT(公歷)開始的偏移量。Calendar類定義的字段非常豐富,每個日歷字段都是靜態(tài)的成員變量,并且是int類型的。Calendar類常用的字段如表7-2-1所示。Calendar類本身定義了構(gòu)造方法,但由于它是一個抽象類,不能直接實例化對象,因此在方法列表中提供了getInstance的重載方法來創(chuàng)建一個對象。除了能夠獲取時間戳信息外,Calendar類還提供了豐富的方法來查詢和設(shè)置時間信息,表7-2-2列出了一些常用的方法。7.2.2SimpleDateFormat類SimpleDateFormate類提供對日期類進行格式化和解析的功能。其中格式化是將日期轉(zhuǎn)換成指定格式的字符串,解析是將符合一定規(guī)范的字符串轉(zhuǎn)換成日期。格式化和解析需要按照一定的規(guī)則進行,如表7-2-3中給出的描述。7.3Math類與Random類7.3.1Math類Math類直接繼承自O(shè)bject類,在java.lang包里面,是一個由publicfinal修飾的類。在Math類中定義了兩個靜態(tài)常量E和PI,它們分別是數(shù)學中自然常數(shù)和圓周率的近似值。它們的源代碼如下所示,由此可知它們均是一個double類型的值。在Math類中構(gòu)造方法是不可見的,Math類中所有的成員方法和成員常量均為靜態(tài)成員。因此,Math類在使用的時候直接通過類名調(diào)用成員即可。Math類中常用的方法如表7-3-1所示。幾乎所有的Math類方法都對float和double數(shù)據(jù)類型進行了重載,有些也提供了int和long類型的重載格式。同時方法的返回值類型大多與形參類型保持一致。例如,min方法的重載形式有以下幾種,這里只給出了方法的聲明。7.3.2Random類Random類可以在指定的取值范圍內(nèi)隨機產(chǎn)生數(shù)字。它直接繼承自O(shè)bject類,位于java.util包里面。Random類是公有的非final修飾的類,它的方法都不是靜態(tài)的,因此在使用時需要創(chuàng)建對象。相比于Math類的隨機數(shù),Random類的隨機數(shù)更加靈活和強大。Random類中有兩個構(gòu)造方法,如表7-3-2所示這里需要注意的是第二種構(gòu)造方法。它提供了一個long類型的參數(shù),用來設(shè)置偽隨機數(shù)的種子。當需要在不同代碼位置生成一個相同的偽隨機數(shù)時,只要設(shè)置的隨機數(shù)種子相同那么這兩個偽隨機數(shù)也是相同的,這也是為什么Random類被稱為偽隨機數(shù)生成器。偽隨機數(shù)的種子也可以通過類內(nèi)的方法seed來設(shè)置。第一種構(gòu)造方法沒有形參,它的偽隨機數(shù)種子也是隨機的。Random類常用的方法如表7-3-3所示。與Math類中的隨機數(shù)相比,Random類提供了數(shù)據(jù)類型更豐富的隨機數(shù)。例如,Random類的nextDouble方法返回的是0和1之間double類型的值,nextFloat方法返回的是0和1之間float類型的值。需要注意的是,nextInt(intn)返回的是0(包括)和指定值n(不包括)之間的值,它在取值范圍上也符合Java語言的“左閉右開”原則。7.4System類與Runtime類7.4.1System類System類在編程中經(jīng)常用到,它可以在屏幕上打印輸出內(nèi)容。其實System類中定義了一些與系統(tǒng)相關(guān)的方法和屬性,它們都是由publicstatic修飾的公有靜態(tài)成員。System類中的常用方法如表7-4-1所示。7.4.2Runtime類Runtime類用來描述Java虛擬機的運行狀態(tài),它封裝了JVM進程。Runtime類在java.lang包里面,它直接繼承自O(shè)bject類,由public修飾符修飾。由于Java程序在運行時只能有一個JVM,因此在Runtime類中隱藏了構(gòu)造方法,通過單例設(shè)計模式對外提供唯一的實例對象。創(chuàng)建Runtime類的對象使用如下代碼:Runtime類常用的方法如表7-4-2所示。7.5包裝類在Java語言中為了能夠把基本數(shù)據(jù)類型和引用數(shù)據(jù)類型統(tǒng)一起來,都可以作為方法的形參、集合的元素和泛型的類型,以支持更加廣泛的多態(tài),提出了包裝類的概念。包裝類的作用就是把八種基本數(shù)據(jù)類型的變量包裝成引用數(shù)據(jù)類型的對象。表7-5-1中給出了Java基本數(shù)據(jù)類型對應的包裝類。其中除了Character和Integer包裝類之外,其他包裝類的名稱與基本數(shù)據(jù)類型保持一致,只是首字母變成了大寫字母。包裝類都在java.lang包里面,它們的用法很相似,下面以Integer類為例進行介紹。Integer類提供了兩種構(gòu)造方法,它們的形參分別為整數(shù)和字符串。但目前已經(jīng)不推薦使用這兩種構(gòu)造方法來創(chuàng)建整型

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論