版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第4章包裝類與日期類章包裝類與日期類JSP基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) Java的基本數(shù)據(jù)類型可以放入寄存器,正因如此,基本數(shù)據(jù)類型的存取、運(yùn)算比各種類類型速度要快。所以為了兼顧運(yùn)算的效率,java當(dāng)中當(dāng)然要有基本數(shù)據(jù)類型。 包裝類包裝類 Java語言是一個(gè)面向?qū)ο蟮恼Z言,但是Java中的基本數(shù)據(jù)類型卻是不面向?qū)ο蟮?,這在實(shí)際使用時(shí)存在很多的不便,為了解決這個(gè)不足,在設(shè)計(jì)類時(shí)為每個(gè)基本數(shù)據(jù)類型設(shè)計(jì)了一個(gè)對(duì)應(yīng)的類進(jìn)行代表,這樣八個(gè)和基本數(shù)據(jù)類型對(duì)應(yīng)的類統(tǒng)稱為包裝類(Wrapper Class), 除了int(Integer)和char(Character),其余類型首字母大寫即成封裝類類型名。包裝類 原始
2、數(shù)據(jù)類型包裝類byte(字節(jié))Byte char(字符)Character int(整型)Integerlong(長整型)Long float(浮點(diǎn)型)Floatdouble(雙精度)Double boolean(布爾)Booleanshort(短整型)Short 對(duì)于包裝類說,這些類的用途主要包含兩種: 作為和基本數(shù)據(jù)類型對(duì)應(yīng)的類類型存在,方便涉及到對(duì)象的操作。 包含每種基本數(shù)據(jù)類型的相關(guān)屬性如最大值、最小值等,以及相關(guān)的操作方法。包裝類 包裝類 抽象類抽象類Number定義了一個(gè)由包裝數(shù)字類型定義了一個(gè)由包裝數(shù)字類型的類實(shí)現(xiàn)的超類。是的類實(shí)現(xiàn)的超類。是 Byte、Double、Float、
3、Integer、Long 和和 Short 類的超類。類的超類。 包裝類 Number類方法摘要bytebyteValue() 以 byte 形式返回指定的數(shù)值。abstract doubledoubleValue() 以 double 形式返回指定的數(shù)值。abstract floatfloatValue() 以 float 形式返回指定的數(shù)值。abstract intintValue() 以 int 形式返回指定的數(shù)值。abstract longlongValue() 以 long 形式返回指定的數(shù)值。 shortshortValue() 以 short 形式返回指定的數(shù)值。包裝類 Doub
4、le a=3.14;Integer b=Value();System.out.println(b);示例:示例:從類 java.lang.Object 繼承的方法:equalstoString包裝類 10包裝類 示例:示例:Double a=3.14;String b=a.toString();System.out.println(b);String s = Integer.toString(123);System.out.println(s);基本類型與包裝類型的相互轉(zhuǎn)換:包裝類 int n = 10;Integer in = new Integer(100);/ 將將int類型轉(zhuǎn)
5、換為類型轉(zhuǎn)換為Integer類型類型Integer in1 = new Integer(n);/ 將將Integer類型的對(duì)象轉(zhuǎn)換為類型的對(duì)象轉(zhuǎn)換為int類型類型int m = Value();JDK自從1.5(5.0)版本以后,就引入了自動(dòng)拆裝箱的語法,也就是在進(jìn)行基本數(shù)據(jù)類型和對(duì)應(yīng)的包裝類轉(zhuǎn)換時(shí),系統(tǒng)將自動(dòng)進(jìn)行,這將大大方便程序員的代碼書寫。使用示例代碼如下: / int類型會(huì)自動(dòng)轉(zhuǎn)換為類型會(huì)自動(dòng)轉(zhuǎn)換為Integer類型類型int m = 12;Integer in = m;/ Integer類型會(huì)自動(dòng)轉(zhuǎn)換為類型會(huì)自動(dòng)轉(zhuǎn)換為int類型類型int n = in;自動(dòng)裝箱與拆箱自動(dòng)
6、裝箱與拆箱自動(dòng)裝箱與拆箱的功能事實(shí)上是編譯器來幫忙,編譯器在編譯時(shí)期根據(jù)語法,決定是否進(jìn)行裝箱或拆箱動(dòng)作。例如: Integer i = 100;相當(dāng)于編譯器自動(dòng)做以下的語法編譯: Integer i = new Integer(100);所以自動(dòng)裝箱與拆箱的功能是所謂的“編譯器蜜糖”(Compiler Sugar)自動(dòng)裝箱、拆箱的功能提供了方便性,但隱藏了一些細(xì)節(jié),所以必須小心 :自動(dòng)裝箱與拆箱public class AutoBoxDemo public static void main(String args) Integer i1 = 100; Integer i2 = 100; if
7、 (i1 = i2) System.out.println(i1 = i2); else System.out.println(i1 != i2); 結(jié)果:結(jié)果:i1 = i2將i1和i2的值改為200:自動(dòng)裝箱與拆箱public class AutoBoxDemo public static void main(String args) Integer i1 = 200; Integer i2 = 200; if (i1 = i2) System.out.println(i1 = i2); else System.out.println(i1 != i2); 結(jié)果:結(jié)果:i1 != i2說明
8、:當(dāng)我們?cè)诶?比較基本類型時(shí),比較的是值。但是=運(yùn)算符用于比較包裝器對(duì)象時(shí),是檢測(cè)對(duì)象是否值向同一個(gè)存儲(chǔ)區(qū)域在自動(dòng)裝箱時(shí)對(duì)于值從128到127之間的值,它們被裝箱為Integer對(duì)象后,會(huì)存在內(nèi)存中被重用,所以范例1中使用=進(jìn)行比較時(shí),i1 與 i2實(shí)際上參考至同一個(gè)對(duì)象。如果超過了從128到127之間的值,被裝箱后的Integer對(duì)象并不會(huì)被重用,即相當(dāng)于每次裝箱時(shí)都新建一個(gè)Integer對(duì)象,所以范例2使用=進(jìn)行比較時(shí),i1與i2參考的是不同的對(duì)象。 自動(dòng)裝箱與拆箱為避免此類問題,建議使用equals方法比較對(duì)象是否相等,而不是用=運(yùn)算符比較對(duì)象是否相同 public class Aut
9、oBoxDemo public static void main(String args) Integer i1 = 200; Integer i2 = 200; if (i1.equals(i2) System.out.println(i1 = i2); else System.out.println(i1 != i2); 自動(dòng)裝箱與拆箱Double和Float雙精度(Double)和浮點(diǎn)(Float)分別是對(duì)類型double和類型float的浮點(diǎn)值的包裝器。class DoubleDemo public static void main(String args) Double d1 = n
10、ew Double(3.14159); Double d2 = new Double(314159E-5); System.out.println(d1 + = + d2 + - + d1.equals(d2); 3.14159 = 3.14159 - true浮點(diǎn)(浮點(diǎn)(Float)和雙精度()和雙精度(Double)提供了)提供了isInfinite()和和isNaN()方法,用于操作兩個(gè)特殊的雙精度(方法,用于操作兩個(gè)特殊的雙精度(double)和浮點(diǎn)(和浮點(diǎn)(float)值:)值:Infinity(無窮無窮)和和NaN(非具體數(shù)(非具體數(shù)字)。字)。NaN用于處理計(jì)算中出現(xiàn)的錯(cuò)誤情況,
11、比如用于處理計(jì)算中出現(xiàn)的錯(cuò)誤情況,比如0.0除以除以0.0,或者求負(fù)數(shù)的平方根。,或者求負(fù)數(shù)的平方根。 Infinity表示無窮大,表示無窮大,Java中小數(shù)除以中小數(shù)除以0值為無窮大,值為無窮大,比如比如1f/0f結(jié)果為正無窮大,結(jié)果為正無窮大,1f/-0f結(jié)果為負(fù)無窮大結(jié)果為負(fù)無窮大 。Double和和Float在下面的例子中構(gòu)造了兩個(gè)在下面的例子中構(gòu)造了兩個(gè)Double對(duì)象;一個(gè)是無窮,另一個(gè)是對(duì)象;一個(gè)是無窮,另一個(gè)是非數(shù)字:非數(shù)字:class InfNaN public static void main(String args) Double d1 = new Double(1.0f
12、/0.0f); Double d2 = new Double(0.0f/0.0f); System.out.println(d1 + : + d1.isInfinite() + , + d1.isNaN(); System.out.println(d2 + : + d2.isInfinite() + , + d2.isNaN(); 程序運(yùn)行產(chǎn)生如下的輸出:程序運(yùn)行產(chǎn)生如下的輸出:Infinity:true,falseNaN:false,trueByte, Short, Integer 和 LongByte,Short,Integer,和Long類分別是字節(jié)型(byte),短整型(short),
13、整型(int)和長整型(long)整數(shù)類型的包裝器。具體的用法請(qǐng)參考相關(guān)文檔。Character類類字符(Character)是圍繞字符型(char)的一個(gè)簡(jiǎn)單的包裝器。lCharacter包裝類的方法方法說明isDigit()確定字符是否為 0 至 9 之間的數(shù)字isLetter()確定字符是否為字母isLowerCase()確定字符是否為小寫形式isUpperCase()確定字符是否為大寫形式isSpace()確定字符是否為空格或換行符isWhitespace() 確定字符是否為空白字符class IsDemo public static void main(String args) ch
14、ar a = a, b, 5, ?, A, ; for (int i = 0; i a.length; i+) if (Character.isDigit(ai) System.out.println(ai + is a digit.); if (Character.isLetter(ai) System.out.println(ai + is a letter.); if (Character.isWhitespace(ai) System.out.println(ai + is whitespace.); if (Character.isUpperCase(ai) System.out.p
15、rintln(ai + is uppercase.); if (Character.isLowerCase(ai) System.out.println(ai + is lowercase.); Character類類程序的輸出結(jié)果如下所示:程序的輸出結(jié)果如下所示:aisaletter.aislowercase.bisaletter.bislowercase.5isadigit.Aisaletter.Aisuppercase.iswhitespace.Character類類Date 類Date 類表示日期和時(shí)間提供操縱日期和時(shí)間各組成部分的方法Date 類位于java.util包,因此在源程序
16、開始位置需要寫如下語句: import java.util.Date;Date類封裝當(dāng)前的日期和時(shí)間。Date類中的大部分方法已經(jīng)被廢棄了?,F(xiàn)在一般情況下Date類只用來生成當(dāng)前日期。如下:Date date = new Date();System.out.println(date);顯示為:顯示為:Mon Jun 28 10:58:50 CST 2010也可以如下:也可以如下:System.out.println(date.toLocaleString();顯示為:顯示為:2010-6-28 11:03:56Date 類CST代表中國標(biāo)準(zhǔn)時(shí)間,也就是北京時(shí)間(東八區(qū))。代表中國標(biāo)準(zhǔn)時(shí)間,也就
17、是北京時(shí)間(東八區(qū))。 Java的日期范圍大約是 1970 年 1 月 1 日午夜的前后各 285616 年。Date類的getTime()方法可以返回一個(gè)長整數(shù),這個(gè)整數(shù)代表了從 1970 年 1 月 1 日開始計(jì)算到 Date 對(duì)象中的時(shí)間之間的毫秒數(shù)。這個(gè)時(shí)間通常被稱為Java 虛擬機(jī)(JVM)主機(jī)環(huán)境的系統(tǒng)時(shí)間:Date 類import java.util.Date;public class DateDemo public static void main(String args) Date now = new Date(); long nowLong = now.getTime();
18、 System.out.println(Value is + nowLong); 在進(jìn)行各種日期和時(shí)間換算的時(shí)候,可以定義一些變量來表示一天、一個(gè)小時(shí)或一分鐘中包含的毫秒數(shù)。這樣做通常是很有幫助的。例如:Date 類import java.util.Date;public class DateDemo public static void main(String args) int MinMilli = 1000 * 60; int HrMilli = MinMilli * 60; int DyMilli = HrMilli * 24; Date d = new Date(); long t
19、= d.getTime(); String s = It is been; /round方法返回與數(shù)值表達(dá)式最接近的整數(shù)方法返回與數(shù)值表達(dá)式最接近的整數(shù) s += Math.round(t / DyMilli) + days since 1/1/70; System.out.println(s); DateFormat類在java.util.Date類中實(shí)際上取得的時(shí)間是一個(gè)非常正確的時(shí)間。但是因?yàn)槠滹@示的格式不理想,所以無法符合中國人的習(xí)慣要求,那么實(shí)際上此時(shí)就可以為此類進(jìn)行格式化操作,變?yōu)榉嫌谥袊肆?xí)慣的日期格式。java.text.DateFormat類專門用于格式化日期。DateFo
20、rmat類是一個(gè)抽象類,所以肯定無法直接實(shí)例化,但是在此抽象類中提供了一些靜態(tài)方法,可以直接取得本類的實(shí)例(Locale 對(duì)象表示了特定的地理、政治和文化地區(qū)) :DateFormat類方 法類 型描 述public static final DateFormat getDateInstance()普通得到默認(rèn)的對(duì)象public static final DateFormat getDateInstance(int style, Locale aLocale)普通根據(jù)Locale得到對(duì)象public static final DateFormat getDateTimeInstance()普通
21、得到日期時(shí)間對(duì)象public static final DateFormat getDateTimeInstance(int dateStyle,int timeStyle,Locale aLocale)普通根據(jù)Locale得到日期時(shí)間對(duì)象import java.util.Date;import java.text.*;public class DateFormatDemo1 public static void main(String args) DateFormat df1 = null; / 聲明聲明DateFormat類對(duì)象類對(duì)象 DateFormat df2 = null; / 聲明
22、聲明DateFormat類對(duì)象類對(duì)象 df1 = DateFormat.getDateInstance(); / 取得日期取得日期 df2 = DateFormat.getDateTimeInstance(); / 取得日期時(shí)間取得日期時(shí)間 System.out.println(DATE: + df1.format(new Date();/ 格式格式化日期化日期 System.out.println(DATETIME: + df2.format(new Date(); DateFormat類DateFormat類import java.text.DateFormat;import java.u
23、til.Date;public class DateFormatDemo2 public static void main(String args) Date date = new Date(); DateFormat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT); DateFormat mediumFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); DateFormat longFormat = DateFormat.getDateInstance(DateFo
24、rmat.LONG); DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL); System.out.println(shortFormat.format(date); System.out.println(mediumFormat.format(date); System.out.println(longFormat.format(date); System.out.println(fullFormat.format(date); DateFormat類import java.text.DateFormat;i
25、mport java.util.Date;public class DateFormatDemo2 public static void main(String args) Date date = new Date(); DateFormat shortFormat = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.SHORT); DateFormat mediumFormat = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.MEDIUM)
26、; DateFormat longFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); DateFormat fullFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); System.out.println(shortFormat.format(date); System.out.println(mediumFormat.format(date); System.out.println(longForm
27、at.format(date); System.out.println(fullFormat.format(date); Java.util.Locale類Locale 對(duì)象表示了特定的地理、政治和文化地區(qū)。Locale確定了一種專門的語言和區(qū)域,通過使用java.util.Locale對(duì)象來為那些區(qū)域敏感型的對(duì)象定制格式化數(shù)據(jù)以及向用戶的展示。使用此類中的構(gòu)造方法來創(chuàng)建 Locale: Locale(String language) Locale(String language, String country) Locale(String language, String country,
28、String variant) DateFormat類語言參數(shù)是一個(gè)有效的 ISO 語言代碼。這些代碼是由 ISO-639 定義的小寫兩字母代碼。在許多網(wǎng)站上都可以找到這些代碼的完整列表,如:/standards/iso639-2/englangn.html。 國家/地區(qū)參數(shù)是一個(gè)有效的 ISO 國家/地區(qū)代碼。這些代碼是由 ISO-3166 定義的大寫兩字母代碼。在許多網(wǎng)站上都可以找到這些代碼的完整列表,如:http:/www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-
29、en1.html。 變量參數(shù)是特定于供應(yīng)商或?yàn)g覽器的代碼。例如,用 WIN 代表 Windows、MAC 代表 Macintosh 和 POSIX 代表 POSIX。DateFormat類import java.text.DateFormat;import java.util.Date;import java.util.Locale;public class DateFormatDemo2 public static void main(String args) Date date = new Date(); Locale locale = new Locale(en, US); DateFo
30、rmat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT,locale); DateFormat mediumFormat = DateFormat.getDateInstance(DateFormat.MEDIUM,locale); DateFormat longFormat = DateFormat.getDateInstance(DateFormat.LONG,locale); DateFormat fullFormat = DateFormat.getDateInstance(DateFormat.FULL,local
31、e); System.out.println(shortFormat.format(date); System.out.println(mediumFormat.format(date); System.out.println(longFormat.format(date); System.out.println(fullFormat.format(date); DateFormat類注意:DateFormat類的日期時(shí)間已經(jīng)被格式化,格式是其默認(rèn)的時(shí)間顯示格式,但是如果現(xiàn)在要想得到用戶自己需要的日期顯示格式,則必須通過DateFormat的子類SimpleDateFormat類完成。Date
32、Format類SimpleDateFormat 是一個(gè)以與語言環(huán)境相關(guān)的方式來格式化日期的具體類。它允許進(jìn)行格式化日期 。 使得可以選擇任何用戶定義的日期-時(shí)間格式的模式。SimpleDateFormat位于java.text包,因此需要在源程序開始位置寫如下語句: import java.text.*;SimpleDateformat類日期和時(shí)間模式日期和時(shí)間格式由日期和時(shí)間模式 字符串指定。SimpleDateformat類字母 日期或時(shí)間元素 表示 示例 y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周數(shù) Number 27 W 月
33、份中的周數(shù) Number 2 D 一年中的第幾天Number 189 d 月份中的天數(shù) Number 10 F 月份中的星期 Number 2 E 星期中的天數(shù) Text Tuesday; Tue SimpleDateformat類a 上午/下午標(biāo)記 Text PM H 一天中的小時(shí)數(shù)(0-23) Number 0 k 一天中的小時(shí)數(shù)(1-24) Number 24 K 上午/下午中的小時(shí)數(shù)(0-11) Number 0 h 上午/下午中的小時(shí)數(shù)(1-12) Number 12 m 小時(shí)中的分鐘數(shù) Number 30 s 分鐘中的秒數(shù) Number 55 S 毫秒數(shù) Number 978 z
34、時(shí)區(qū) General time zone Pacific Standard Time; PST; GMT-08:00 Z 時(shí)區(qū) RFC 822 time zone -0800 SimpleDateformat類方 法類 型描 述public SimpleDateFormat(String pattern)構(gòu)造通過一個(gè)指定的模板構(gòu)造對(duì)象public Date parse(String source) throws ParseException普通將一個(gè)包含日期的字符串變?yōu)镈ate類型public final String format(Date date)普通將一個(gè)Date類型按照指定格式變?yōu)镾tring類型SimpleDateFormat類中的常用方法類中的常用方法示例:示例:import java.text.DateFo
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60068-2:2025 SER EN-FR Environmental testing - Part 2: Tests - ALL PARTS
- 物理-遼寧省大連市2024-2025學(xué)年高三上學(xué)期期末雙基測(cè)試卷及答案
- 2024陶瓷行業(yè)知識(shí)產(chǎn)權(quán)保護(hù)合作協(xié)議3篇
- 2025賓館特色餐飲開發(fā)與推廣合作協(xié)議3篇
- 2024食品工廠代加工綠色包裝合作合同范本2篇
- 2024版協(xié)議離婚制度論文深度解讀與案例分析3篇
- 2024年航空公司飛機(jī)采購協(xié)議
- 2025年度安全文化建設(shè)與推廣承包合同范本3篇
- 中國各省地圖形狀
- 2024智能交通信號(hào)控制系統(tǒng)研發(fā)合同
- 常用靜脈藥物溶媒的選擇
- 當(dāng)代西方文學(xué)理論知到智慧樹章節(jié)測(cè)試課后答案2024年秋武漢科技大學(xué)
- 2024年中國心力衰竭診斷和治療指南2024版
- HCCDP 云遷移認(rèn)證理論題庫
- 臺(tái)大公開課--《紅樓夢(mèng)》筆記剖析
- 工傷保險(xiǎn)待遇及案例分析PPT課件
- 底總結(jié)報(bào)告2017年初開場(chǎng)計(jì)劃策劃模版圖文可隨意編輯修改課件
- 詢問調(diào)查筆錄內(nèi)容來自dedecms - 稅務(wù)局(稽查局)
- 石油化工中心化驗(yàn)室設(shè)計(jì)規(guī)范
- 自己總結(jié)的清華斯維爾節(jié)能問題解答(共21頁)
- 烹飪專業(yè)課程及課表設(shè)置
評(píng)論
0/150
提交評(píng)論