網(wǎng)絡(luò)安全-Java基礎(chǔ)第6章課件_第1頁
網(wǎng)絡(luò)安全-Java基礎(chǔ)第6章課件_第2頁
網(wǎng)絡(luò)安全-Java基礎(chǔ)第6章課件_第3頁
網(wǎng)絡(luò)安全-Java基礎(chǔ)第6章課件_第4頁
網(wǎng)絡(luò)安全-Java基礎(chǔ)第6章課件_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第六章JavaAPIString類和StringBuffer類System類和Runtime類Math類和Random類包裝類Date類、Calendar類和DateFormat類6.1String類和StringBuffer類6.2System類與Runtime類6.3Math類與Random類6.4包裝類6.5Date類、Calendar類與DateFormat類6.6JDK7新特性——switch語句支持字符串類型6.1String類和

StringBuffer類

6.1.1String類的初始化Java中定義了String和StringBuffer兩個類來封裝字符串,并提供了一系列操作字符串的方法,它們都位于java.lang包中,因此不需要導(dǎo)包就可以直接使用。String類的對象具有常量特性,即被創(chuàng)建后對象中的字符序列不能修改,而StringBuffer類的對象所占的內(nèi)存空間可以變化,便于存放變化的字符串。在操作String類之前,首先需要對String類進(jìn)行初始化。1、使用字符串常量直接初始化一個String對象,具體代碼如下:6.1String類和

StringBuffer類

6.1.1String類的初始化2、使用String的構(gòu)造方法初始化字符串對象String類提供了多個構(gòu)造方法,常用的有5個:可以通過一個字符串常量來構(gòu)造一個字符串對象,也可以通過一個字符數(shù)組或者字節(jié)數(shù)組構(gòu)造一個字符串對象。 (1)publicString(Stringstring) 例如:Strings=newString(“Hello”); (2)publicString(char[]value) 例如:char[]c={‘J’,’a’,’v’,’a’};Strings=newString(c);

(3)publicString(char[]value,intoffset,intcount)例如:char[]c={‘H’,’e’,’l’,’l’,’o’};Strings=newString(c,0,2);//s的值是“He”6.1String類和

StringBuffer類

6.1.1String類的初始化(4)publicString(byte[]bytes)例如:byte[]b={65,66,67,68,69,70};Strings=newString(b);//s的值是“ABCDEF”(5)publicString(byte[]bytes,intoffset,intlength)例如:byte[]b={65,66,67,68,69,70};Strings=newString(b,0,2);//s的值是“AB”字符串對象一旦創(chuàng)建,其內(nèi)容不會發(fā)生改變,也就是說每一個字符串的實(shí)體都是一個常量。但是字符串的引用變量值可以改變:

Strings=“Java面向?qū)ο蟪绦蛟O(shè)計(jì)”;//變成垃圾對象

s=newString("JavaEE開發(fā)教程");6.1.1String類的初始化6.1String類和

StringBuffer類

6.1.1String類的初始化6.1String類和

StringBuffer類

6.1.2String類的常見操作6.1String類和

StringBuffer類

6.1.2String類的常見操作6.1String類和

StringBuffer類

6.1.2String類的常見操作1.字符串的基本操作在程序中,需要對字符串進(jìn)行一些基本操作,如獲得字符串長度、獲得指定位置的字符等??梢钥闯?,String類提供的方法可以很方便地獲取字符串的長度,獲取指定位置的字符以及指定字符的位置。6.1String類和

StringBuffer類

6.1.2String類的常見操作2.字符串的遍歷

6.1String類和

StringBuffer類

6.1.2String類的常見操作3.字符串相等String類重寫了Object類的equals()方法,實(shí)現(xiàn)字符串值相等判定,區(qū)分大小寫。而==運(yùn)算符則用于判斷兩個對象是否為同一個對象實(shí)體。

6.1String類和

StringBuffer類

6.1.2String類的常見操作3.字符串相等有時候進(jìn)行字符串相等比較時不區(qū)分字符大小寫,String類提供了忽略大小寫的相等判定方法equalsIgnoreCase()。

6.1String類和

StringBuffer類6.1.2String類的常見操作4.字符串的判斷操作操作字符串時,經(jīng)常需要對字符串進(jìn)行一些判斷,如判斷字符串是否以指定的字符串開始、結(jié)束,是否包含指定的字符串,字符串是否為空等。例程6-5中涉及到的方法都是用于判斷字符串的,并且返回值均為boolean類型。其中,equals()方法比較重要,該方法將父類Object中equals()方法進(jìn)行了重寫。6.1String類和

StringBuffer類

6.1.2String類的常見操作 5.字符串的查詢操作操作字符串時,經(jīng)常需要對字符串進(jìn)行一些判斷,如判斷字符串是否以指定的字符串開始、結(jié)束,是否包含指定的字符串,字符串是否為空等。publicintindexOf(charc):在當(dāng)前字符串中查找字符c,若找到則返回首次出現(xiàn)字符c的下標(biāo),否則返回-1。publicintindexOf(Strings):在當(dāng)前字符串中查找字符串s,若找到則返回首次出現(xiàn)字符串s的首字符的下標(biāo),否則返回-1。publicintlastIndexOf(charc):返回字符c最后出現(xiàn)在當(dāng)前字符串中的下標(biāo),否則返回-1。publicintlastIndexOf(Strings):返回字符串s在當(dāng)前字符串中最后一次出現(xiàn)的首字符下標(biāo),否則返回-1。6.1String類和

StringBuffer類

6.1.2String類的常見操作 5.字符串的查詢操作

6.1String類和

StringBuffer類

6.1.2String類的常見操作 6.字符串的替換和去除空格操作程序開發(fā)中,用戶輸入數(shù)據(jù)時經(jīng)常會有一些錯誤和空格,這時可以使用String類的replace()和trim()方法,進(jìn)行字符串的替換和去除空格操作。6.1String類和

StringBuffer類

6.1.2String類的常見操作 6.字符串的替換和去除空格操作程序開發(fā)中,用戶輸入數(shù)據(jù)時經(jīng)常會有一些錯誤和空格,這時可以使用String類的replace()和trim()方法,進(jìn)行字符串的替換和去除空格操作。6.1String類和

StringBuffer類

6.1.2String類的常見操作 7.字符串的截?。ㄈ∽执┖头指钤赟tring類中針對字符串的截取和分割操作提供了兩個方法,其中,substring()方法用于截取字符串的一部分,split()方法可以將字符串按照某個一個字符串(可以是正則表達(dá)式)進(jìn)行分割,并將分割的結(jié)果保存到一個字符串?dāng)?shù)組中。6.1String類和

StringBuffer類

6.1.2String類的常見操作 7.字符串的截?。ㄈ∽执┖头指钤赟tring類中針對字符串的截取和分割操作提供了兩個方法,其中,substring()方法用于截取字符串的一部分,split()方法可以將字符串按照某個一個字符串(可以是正則表達(dá)式)進(jìn)行分割,并將分割的結(jié)果保存到一個字符串?dāng)?shù)組中。6.1String類和

StringBuffer類

6.1.2String類的常見操作 7.字符串的轉(zhuǎn)換操作在程序開發(fā)中,經(jīng)常需要對字符串進(jìn)行轉(zhuǎn)換操作,例如將字符串轉(zhuǎn)換成數(shù)組的形式,將字符串中的字符進(jìn)行大小寫轉(zhuǎn)換等。(1)字符串大小寫轉(zhuǎn)換Strings="Abc";

Strings1=s.toLowerCase();

Strings2=s.toUpperCase();則s1的值為"abc",s2的值為"ABC",s的值不變。(2)字符串轉(zhuǎn)化為數(shù)字:可以采用Integer類的intparseInt(Strings)方法,Byte、Short、Long、Float、Double類提供了相應(yīng)的靜態(tài)方法,例如Double.parseDouble(Strings)。6.1String類和

StringBuffer類6.1.2String類的常見操作 7.字符串的轉(zhuǎn)換操作(3)數(shù)字轉(zhuǎn)化為字符串:用連接符+,還可以使用String類的方法valueOf(數(shù)值),或者使用Integer和Long類提供的靜態(tài)方法StringtoString(i,p),得到整數(shù)i的p進(jìn)制的字符串表示。6.1String類和

StringBuffer類6.1.2String類的常見操作 7.字符串的轉(zhuǎn)換操作(4)字符串轉(zhuǎn)化為字符數(shù)組publicvoidgetChars(intbegin,intend,char[]dst,intdstBegin):將當(dāng)前字符串的一部分復(fù)制到目標(biāo)字符數(shù)組中。publicchar[]toCharArray():將此字符串轉(zhuǎn)換為一個新的字符數(shù)組,它的長度是此字符串的長度,它的內(nèi)容被初始化為包含此字符串表示的字符序列。6.1String類和

StringBuffer類6.1.2String類的常見操作 7.字符串的轉(zhuǎn)換操作(4)字符串轉(zhuǎn)化為字符數(shù)組6.1String類和

StringBuffer類6.1.2String類的常見操作 7.字符串的轉(zhuǎn)換操作(5)字符串轉(zhuǎn)化為字節(jié)數(shù)組publicbyte[]getBytes():使用平臺的默認(rèn)字符集將當(dāng)前字符串轉(zhuǎn)換成字節(jié)數(shù)組。publicbyte[]getBytes(Charsetcharset):根據(jù)給定的字符集charset將當(dāng)前字符串轉(zhuǎn)換到字節(jié)數(shù)組中。

6.1String類和

StringBuffer類6.1.2String類的常見操作 7.字符串的轉(zhuǎn)換操作(5)字符串轉(zhuǎn)化為字節(jié)數(shù)組6.1String類和

StringBuffer類腳下留心String字符串在獲取某個字符時,會用到字符的索引,當(dāng)訪問字符串中的字符時,如果字符的索引不存在,則會發(fā)生StringIndexOutOfBoundsException(字符串角標(biāo)越界異常)可以看出,訪問字符串中的字符時,不能超出字符的索引范圍,否則會出現(xiàn)異常,這與數(shù)組中的角標(biāo)越界異常非常相似。多學(xué)一招統(tǒng)計(jì)一個字符串中每個字符出現(xiàn)的次數(shù)6.1.3正則表達(dá)式正則表達(dá)式就是一個字符串模板,可以包含普通字符和元字符。元字符就是描述字符的字符,比如上面的“.”就是匹配任意一個字符。6.1String類和

StringBuffer類

6.1.3正則表達(dá)式還可以用[]括起來的若干字符來表示一個字符,比如:

[abc]:abc任何一個字符;

[^abc]:除了abc以外的任何一個字符;

[a-z]:a到z的任何一個字母;

[.]:表示普通意思的點(diǎn)符號。正則表達(dá)式中還有模式限定符:6.1String類和

StringBuffer類

6.1.3正則表達(dá)式身份證號碼是15位數(shù)字或者18位數(shù)字組成的序列,所有正則表達(dá)式可以寫成“\\d{15}|\\d{18}”;QQ號碼最小是“10000”,正則表達(dá)式可以寫成“[1-9][0-9]{4,10}”;Email的正則表達(dá)式是“\\w*[.-_]\\w*@\\w*[.]\\w*”。String類提供了matches方法可以進(jìn)行正則表達(dá)式驗(yàn)證。6.1String類和

StringBuffer類

6.1.3正則表達(dá)式6.1String類和

StringBuffer類

6.1.3正則表達(dá)式Java還提供了專門進(jìn)行模式匹配的庫類:Pattern類和Matcher類,它們位于java.util.regex包中。一般Pattern類和Matcher類聯(lián)合使用:1、先定義一個模式匹配字符串regex;2、通過Pattern類調(diào)用靜態(tài)方法compile(Stringregex)得到一個Pattern對象p;3、通過p對象調(diào)用matcher(CharSequenceinput)得到一個Matcher類對象m,其中input是要進(jìn)行模式匹配的字符串;4、最后通過m對象調(diào)用模式匹配的方法,有find()方法、matches()方法、lookingAt()方法等方法。matches()方法判定input是否與regex完全匹配。6.1String類和

StringBuffer類

6.1.3正則表達(dá)式6.1String類和

StringBuffer類

6.1.3正則表達(dá)式String[]Split(Stringregex)方法示例:6.1String類和

StringBuffer類

多學(xué)一招簡單加密和解密程序6.1.4StringBuffer為了便于對字符串的修改,在JDK中提供了一個StringBuffer類(也稱字符串緩沖區(qū))。StringBuffer類和String類最大的區(qū)別在于它的內(nèi)容和長度都是可以改變的。StringBuffer類似一個字符容器,當(dāng)在其中添加或刪除字符時,并不會產(chǎn)生新的StringBuffer對象。6.1String類和

StringBuffer類6.1.4StringBuffer6.1String類和

StringBuffer類6.1.4StringBuffer6.1String類和

StringBuffer類例程6-8中涉及到StringBuffer類的很多方法,其中append()和insert()方法是最常用的,并且這兩個方法有很多重載形式,它們都用于添加字符。不同的是,append()方法始終將這些字符添加到緩沖區(qū)的末尾,而insert()方法則可以在指定的位置添加字符。6.1.4StringBufferStringBuffer類和String類有很多相似之處,初學(xué)者使用時容易混淆。String類表示的字符串是常量,一旦創(chuàng)建后,內(nèi)容和長度都是無法改變的。StringBuffer表示字符容器,其內(nèi)容和長度都可以隨時修改。在操作字符串時,如果該字符串僅用于表示數(shù)據(jù)類型,則使用String類即可,但是如果需要對字符串中的字符進(jìn)行增刪操作,則使用StringBuffer類。String類覆蓋了Object類的equals()方法,而StringBuffer類沒有覆蓋Object類的equals()方法。String類對象可以用操作符“+”進(jìn)行連接,而StringBuffer類對象之間不能。6.1String類和

StringBuffer類

多學(xué)一招Scanner類可以使用掃描器類Scanner來解析字符串。Scanner類提供了一個構(gòu)造器Scanner(Stringsource)

,構(gòu)造一個新的Scanner對象,默認(rèn)以空格為分隔符掃描指定字符串source。循環(huán)掃描時,可以通過hasNext()方法判定是否存在下一個待提取的數(shù)據(jù)。示例:測試Scanner類解析字符串。多學(xué)一招Scanner類如果想使用正則表達(dá)式匹配的字符串作為分隔符來掃描一個字符串,可以調(diào)用Scanner類提供的另一個方法ScanneruseDelimiter(Stringpattern),該方法將掃描器的分隔模式設(shè)置為pattern模式。例如:6.2System類與

Runtime類6.2.1System類System類對大家來說并不陌生,因?yàn)橹霸诖蛴〗Y(jié)果時,使用的都是“System.out.println()”語句。這句代碼中就使用了System類。System類定義了一些與系統(tǒng)相關(guān)的屬性和方法,它所提供的屬性和方法都是靜態(tài)的,因此,想要引用這些屬性和方法,直接使用System類調(diào)用即可。System類定義了三個靜態(tài)屬性:out、in、err,分別表示標(biāo)準(zhǔn)的輸出流、輸入流和錯誤流。6.2.1System類1.getProperty()方法6.2System類與

Runtime類6.2.1System類2.getProperties()方法

System類的getProperties()方法用于獲取當(dāng)前系統(tǒng)的全部屬性,該方法會返回一個Properties對象,其中封裝了系統(tǒng)的所有屬性,這些屬性是以鍵值對的形式存在。6.2System類與

Runtime類6.2.1System類3.currentTimeMillis()

currentTimeMillis()方法返回一個long類型的值,該值表示當(dāng)前時間與1970年1月1日0點(diǎn)0分0秒之間的時間差,單位是毫秒,習(xí)慣性地被稱作時間戳。6.2System類與

Runtime類

6.2.1System類4.a(chǎn)rraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)

arraycopy()方法用于將一個數(shù)組中的元素快速拷貝到另一個數(shù)組。其中的參數(shù)具體作用如下:src:表示源數(shù)組dest:表示目標(biāo)數(shù)組 srcPos:表示源數(shù)組中拷貝元素的起始位置destPos:表示拷貝到目標(biāo)數(shù)組的起始位置length:表示拷貝元素的個數(shù)需要注意的是,在進(jìn)行數(shù)組復(fù)制時,目標(biāo)數(shù)組必須有足夠的空間來存放拷貝的元素,否則會發(fā)生角標(biāo)越界異常。6.2System類與

Runtime類

6.2.1System類4.a(chǎn)rraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)

例程6-11中,創(chuàng)建了兩個數(shù)組fromArray和toArray,分別代表源數(shù)組和目標(biāo)數(shù)組,當(dāng)調(diào)用arraycopy()方法進(jìn)行元素拷貝時,由于指定了從源數(shù)組中索引為2的元素開始拷貝,并且拷貝4個元素存放在目標(biāo)數(shù)組中索引為3的位置,因此,在打印目標(biāo)數(shù)組的元素時,程序首先打印的是數(shù)組toArray的前三個元素201、202、203,然后打印的是從fromArray中拷貝的四個元素。6.2System類與

Runtime類

6.2.2Runtime類

Runtime類用于表示虛擬機(jī)運(yùn)行時的狀態(tài),它用于封裝JVM虛擬機(jī)進(jìn)程。每次使用java命令啟動虛擬機(jī)都對應(yīng)一個Runtime實(shí)例,并且只有一個實(shí)例,因此該類采用單例模式進(jìn)行設(shè)計(jì),對象不可以直接實(shí)例化。若想在程序中獲得一個Runtime實(shí)例,只能通過以下方式:由于Runtime類封裝了虛擬機(jī)進(jìn)程,因此,在程序中通常會通過該類的實(shí)例對象來獲取當(dāng)前虛擬機(jī)的相關(guān)信息。6.2System類與

Runtime類

6.2.2Runtime類

例程6-12中,通過“Runtime.getRuntime()”方式創(chuàng)建了一個Runtime的實(shí)例對象,并分別調(diào)用該對象的availableProcessors()方法、freeMemory()方法和maxMemory()方法,將當(dāng)前虛擬機(jī)的處理器個數(shù)、空閑內(nèi)存數(shù)和可用最大內(nèi)存數(shù)的信息打印出來。6.2System類與

Runtime類

6.2.2Runtime類

Runtime類中提供了一個exec()方法,該方法用于執(zhí)行一個dos命令,從而實(shí)現(xiàn)和在命令行窗口中輸入dos命令同樣的效果。例程6-13中,調(diào)用了Runtime對象的exec()方法,并將系統(tǒng)命令"notepad.exe"作為參數(shù)傳遞給方法。運(yùn)行程序會在桌面上打開一個記事本6.2System類與

Runtime類

6.2.2Runtime類

接下來通過一個案例來實(shí)現(xiàn)打開的記事本并在3秒后自動關(guān)閉例程6-14中,通過調(diào)用Process對象的destroy()方法,將打開的記事本關(guān)閉了。為了突出演示的效果,使用了Thread類的靜態(tài)方法sleep(longmillis)使程序休眠了3秒,因此,程序運(yùn)行后,會看到打開的記事本在3秒后自動關(guān)閉了。6.2System類與

Runtime類

6.3Math類與

Random類6.3.1Math類Math類是數(shù)學(xué)操作類,提供了一系列用于數(shù)學(xué)運(yùn)算的靜態(tài)方法,包括求絕對值、三角函數(shù)等。Math類中有兩個靜態(tài)常量PI和E,分別代表數(shù)學(xué)常量π和e。6.3Math類與

Random類6.3.1Math類生成驗(yàn)證碼:6.3.2Random類在JDK的java.util包中有一個Random類,它可以在指定的取值范圍內(nèi)隨機(jī)產(chǎn)生數(shù)字。6.3Math類與

Random類6.3.2Random類從運(yùn)行結(jié)果可以看出,例程6-16運(yùn)行兩次產(chǎn)生的隨機(jī)數(shù)序列是不一樣的。這是因?yàn)楫?dāng)創(chuàng)建Random的實(shí)例對象時,沒有指定種子,系統(tǒng)會以當(dāng)前時鐘作為種子,產(chǎn)生隨機(jī)數(shù)。6.3Math類與

Random類6.3.2Random類接下來將例程6-16稍作修改,采用第二種構(gòu)造方法產(chǎn)生隨機(jī)數(shù)從運(yùn)行結(jié)果可以看出,當(dāng)創(chuàng)建Random類的實(shí)例對象時,如果指定了相同的種子,則每個實(shí)例對象產(chǎn)生的隨機(jī)數(shù)具有相同的序列。6.3Math類與

Random類6.3.2Random類相對于Math的random()方法而言,Random類提供了更多的方法來生成各種偽隨機(jī)數(shù)。6.3Math類與

Random類6.3.2Random類模擬中國體育彩票36選7:6.3Math類與

Random類6.3.2Random類Random的nextInt(intn)方法可以生成一個[0,100)區(qū)間的隨機(jī)整數(shù)。在[0,100)區(qū)間共有100個整數(shù),每個數(shù)字出現(xiàn)的概率都是1%。按照這個理論即可實(shí)現(xiàn)以一定概率執(zhí)行某一程序。示例:模擬QQ農(nóng)場,按照一定概率獲得莊稼種子。6.3Math類與

Random類6.4包裝類在Java中,很多類的方法都需要接收引用類型的對象,此時就無法將一個基本數(shù)據(jù)類型的值傳入。為了解決這樣的問題,JDK中提供了一系列的包裝類,通過這些包裝類可以將基本數(shù)據(jù)類型的值包裝為引用數(shù)據(jù)類型的對象。表中列舉了八種基本數(shù)據(jù)類型及其對應(yīng)的包裝類。其中,除了Integer和Character類,其它包裝類的名稱和基本數(shù)據(jù)類型的名稱一致,只是類名的第一個字母大寫即可。6.4包裝類包裝類和基本數(shù)據(jù)類型在進(jìn)行轉(zhuǎn)換時,引入了裝箱和拆箱的概念,其中裝箱是指將基本數(shù)據(jù)類型的值轉(zhuǎn)為引用數(shù)據(jù)類型,反之,拆箱是指將引用數(shù)據(jù)類型的對象轉(zhuǎn)為基本數(shù)據(jù)類型。例程6-19演示了包裝類Integer的裝箱過程,在創(chuàng)建Integer對象時,將int類型的變量a作為參數(shù)傳入,從而轉(zhuǎn)為Integr類型。由于Object類是所有類的父類,因此,第5行代碼通過調(diào)用toString()方法,成功將Integer的值以字符串的形式打印出來。6.4包裝類Integer類除了具有Object類的所有方法外,還有一些特有的方法:表中列舉了Integer的常用方法,其中的“intValue()”方法可以將Integer類型的值轉(zhuǎn)為int類型,這個方法可以用來進(jìn)行拆箱例程6-20演示了拆箱的過程,Integer對象通過調(diào)用intValue()方法,將Integer對象轉(zhuǎn)為int類型,從而可以與int類型的變量a進(jìn)行加法運(yùn)算,最終將運(yùn)算結(jié)果正確打印。6.4包裝類接下來通過一個案例實(shí)現(xiàn)在屏幕上打印“*”矩形,其中寬和高由運(yùn)行時傳入的參數(shù)來決定。在運(yùn)行例程6-21時,需要傳入?yún)?shù)寬和高,具體命令如下:在例程6-21中,程序運(yùn)行時從鍵盤輸入了兩個參數(shù),其中第一個參數(shù)作為矩形的寬度,第二個參數(shù)作為矩形的高度,由于鍵盤輸入的參數(shù)都是字符串類型,不能直接使用,因此,通過調(diào)用包裝類Integer的parseInt()方法將字符串轉(zhuǎn)為整數(shù),從而實(shí)現(xiàn)了矩形的打印。6.4包裝類在使用包裝類時,需要注意以下幾點(diǎn):包裝類都重寫了Object類中的toString()方法,以字符串的形式返回被包裝的基本數(shù)據(jù)類型的值。除了Character外,包裝類都有valueOf(Strings)方法,可以根據(jù)String類型的參數(shù)創(chuàng)建包裝類對象,但參數(shù)字符串s不能為null,而且字符串必須是可以解析為相應(yīng)基本類型的數(shù)據(jù),否則雖然編譯通過,但運(yùn)行時會報(bào)錯。除了Character外,包裝類都有parseXXX(Strings)的靜態(tài)方法,將字符串轉(zhuǎn)換為對應(yīng)的基本類型的數(shù)據(jù)。參數(shù)s不能為null,而且同樣必須是可以解析為相應(yīng)基本類型的數(shù)據(jù),否則雖然編譯通過,但運(yùn)行時會報(bào)錯。6.5Date類、Calendar類

與DateFormat類6.5.1Date類在JDK的java.util包中提供了一個Date類用于表示日期和時間。Date類中大部分構(gòu)造方法都被聲明為已過時,只有兩個構(gòu)造方法是建議使用的,一個是無參的構(gòu)造方法Date(),用來創(chuàng)建當(dāng)前日期時間的Date對象。另一個是接收一個long型參數(shù)date的構(gòu)造方法Date(longdate),用于創(chuàng)建指定時間的Date對象,其中date參數(shù)表示1970年1月1日0時0分0(稱為歷元)以來的毫秒數(shù),即時間戳。6.5.1Date類例程6-22中,打印date1得到的是當(dāng)前計(jì)算機(jī)的日期和時間,打印date2則是自1970年1月1日00:00:00以來966666666666l毫秒后的日期和時間。因此,大家可以根據(jù)需求選擇不同的方式創(chuàng)建Date對象。6.5Date類、Calendar類

與DateFormat類6.5.2Calender類Calendar類用于完成日期和時間字段的操作,它可以通過特定的方法設(shè)置和讀取日期的特定部分,比如年、月、日、時、分和秒等。Calendar類是一個抽象類,不可以被實(shí)例化,在程序中需要調(diào)用其靜態(tài)方法getInstance()來得到一個Calendar對象,然后調(diào)用其相應(yīng)的方法,具體示例如下:最常用的方法是Date

getTime(),返回代表當(dāng)前時間的Date對象。6.5Date類、Calendar類

與DateFormat類6.5.2Calender類利用Calender類獲取當(dāng)前計(jì)算機(jī)的日期和時間:例程6-23中,調(diào)用Calendar的getInstance()方法創(chuàng)建一個代表默認(rèn)時區(qū)內(nèi)當(dāng)前時間的Calendar對象。然后調(diào)用該對象的get(intfield)方法,通過傳入不同的常量字段值來分別得到日期、時間各個字段的值,特別需要注意的是,獲取的Calendar.MONTH字段值需要加1才表示當(dāng)前時間的月份。6.5Date類、Calendar類

與DateFormat類6.5.2Calender類通過調(diào)用Calendar類的set()和add()方法來實(shí)現(xiàn)上述過程:例程6-24中調(diào)用Calendar的set()方法將日期設(shè)置為2008年8月8號,然后調(diào)用add()方法在Calendar.Date字段上增加100,從第10行的打印結(jié)果可以看出,增加100天的日期為2008年11月16日。6.5Date類、Calendar類

與DateFormat類6.5.3DateFormat類如果要將Date對象表示的日期以指定的格式輸出,例如輸出中文格式的時間,就需要用到DateFormat類。DateFormat類專門用于將日期格式化為字符串或者將用特定格式顯示的日期字符串轉(zhuǎn)換成一個Date對象。DateFormat是抽象類,不能被直接實(shí)例化,但它提供了靜態(tài)方法,通過這些方法可以獲取DateFormat類的實(shí)例對象,并調(diào)用其它相應(yīng)的方法進(jìn)行操作。在DateFormat類中定義了四個常量值用于作為參數(shù)傳遞給這些方法,其中包括FULL、LONG、MEDI

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論