Java程序設(shè)計教程(第2版) 課件 張延軍 第6、7章 JDK常見類的使用-上、下_第1頁
Java程序設(shè)計教程(第2版) 課件 張延軍 第6、7章 JDK常見類的使用-上、下_第2頁
Java程序設(shè)計教程(第2版) 課件 張延軍 第6、7章 JDK常見類的使用-上、下_第3頁
Java程序設(shè)計教程(第2版) 課件 張延軍 第6、7章 JDK常見類的使用-上、下_第4頁
Java程序設(shè)計教程(第2版) 課件 張延軍 第6、7章 JDK常見類的使用-上、下_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6周JDK常見類的使用一11JDKAPI幫助文檔2System和Math類4Date、Calendar和SimpleDateFormat類5讓我們一起來編程學(xué)習(xí)提綱3String和StringBuffer類21.JDKAPI幫助文檔為了方便查閱,Oracle公司提供JDKAPI幫助文檔(JDKSpecification),詳細介紹了Java類庫中類和接口的定義、介紹、示例用法、繼承關(guān)系、屬性、構(gòu)造方法、方法等內(nèi)容。JDKAPI幫助文檔以兩種形式提供:【分別展示兩種形式的文檔】1.Oralce公司官方JDKAPI文檔(英文在線版),地址:/en/java/javase/11/docs/api/index.html。2.Java愛好者根椐官方文檔制作而成的CHM版,檢索功能更為強大。本課程提供了英文版JDK1.6EN.chm和中文版JDK1.6CN.chm。1.1API文檔簡介

31.JDKAPI幫助文檔1.2API文檔提供的類或接口的信息41.JDKAPI幫助文檔Since

1.0,本類或接口從JDK哪個版本開始提供。See

Also:提供了本類或接口有關(guān)的一些鏈接。Filed

Summary:成員變量概述列表。Constructor

Summary:構(gòu)造方法概述列表,其中,粗體Deprecated表示該方法隨著版本的更新已經(jīng)被淘汰不再推薦使用。Method

Summary:成員方法概述列表。Field

Detail:成員變量詳細列表。Constructor

Detail:構(gòu)造方法詳細列表。1.2API文檔提供的類或包的信息51.JDKAPI幫助文檔Fields

inherited

from

class:從父類…中繼承的成員變量鏈接。Methods

inherited

from

class:從父類…中繼承的成員方法鏈接。

1.2API文檔提供的類或包的信息61.JDKAPI幫助文檔1.2API文檔提供的方法的信息71JDKAPI幫助文檔2System和Math類4Date、Calendar和SimpleDateFormat類5讓我們一起來編程學(xué)習(xí)提綱3String和StringBuffer類82.System和Math類System類提供了對外部定義的屬性和環(huán)境變量的訪問,加載文件和庫的方法,還有快速復(fù)制數(shù)組的一部分的實用方法。System類的常用屬性:publicstaticfinalInputStreamin:標(biāo)準(zhǔn)輸入設(shè)備-鍵盤;publicstaticfinalPrintStreamout:標(biāo)準(zhǔn)輸出設(shè)備-Eclipse控制臺(Console);publicstaticfinalPrintStreamerr:標(biāo)準(zhǔn)出錯設(shè)備。

2.1System類92.System和Math類System類的常用方法:

publicstaticlongcurrentTimeMillis():提供了獲取當(dāng)前時間到1970-01-0100:00:00之間毫秒數(shù)的方法。Java程序運行時間的計算也是Java編程的常用技巧,用來測試程序的運行效率。2.1System類102.System和Math類2.1System類112.System和Math類java.lang.Math類提供常用的數(shù)學(xué)常量和數(shù)學(xué)方法。Math類中所有的變量和方法都是static和final,因此我們可以直接使用“類名.方法()”的形式調(diào)用。

【編程實踐】publicstaticfinaldoubleE:2.72publicstaticfinaldoublePI:3.14publicstaticdoubleabs(doublea):絕對值方法2.2Math類122.System和Math類publicstaticdoubleceil(doublea):上取整publicstaticdoublefloor(doublea):下取整publicstaticdoublesqrt(doublea):開平方根publicstaticlonground(doublea):四舍五入publicstaticdoublepow(doublea,doubleb):冪函數(shù)publicstaticdoublerandom():生成[0,1)之間的隨機小數(shù)隨機生成’A’-’Z’之間的一個大寫字母隨機生成’0’-’9’之間的一個數(shù)字字符2.1System類131JDKAPI幫助文檔2System和Math類4Date、Calendar和SimpleDateFormat類5讓我們一起來編程學(xué)習(xí)提綱3String和StringBuffer類143.String和StringBuffer類String類是不可改變的字符串常量,在String對象銷毀之前只能賦值一次。如果再次給String變量賦值,則廢棄原來的存儲空間,另外申請存儲空間來存儲新的字符串內(nèi)容。String常用構(gòu)造方法:publicString(char[]value):將一個字符數(shù)組構(gòu)建成一個字符串。publicString(StringBufferbuffer):將StringBuffer變量轉(zhuǎn)換為String變量。publicString(StringBuilderbuilder):將StringBuilder變量轉(zhuǎn)換為String變量。

3.1String類153.String和StringBuffer類【編程實踐】String常用方法:字符數(shù)組和String之間的轉(zhuǎn)換publiccharcharAt(intindex)publicintlength()publicStringreplace(charoldChar,charnewChar)publicStringsubstring(intbegin,intend)取子字符串publicbooleanequals(ObjectanObject)publicbooleanequalsIgnoreCase(StringanotherString)3.1String類163.String和StringBuffer類【示例程序6-1】String的split方法應(yīng)用示例(SplitTest.java)涉及正則表達式。3.1String類173.String和StringBuffer類如果經(jīng)常要對字符串?dāng)?shù)據(jù)進行插入、修改、刪除等操作,請采用StringBuffer類。StringBuffer是線程安全的,所以效率相對較低。如果不考慮線程安全問題,建議采用StringBuilder類。StringBuilder除了不是線程安全的之外,其它與StringBuffer類基本相同,擁有更快的速度和效率。3.2StringBuffer類183.String和StringBuffer類StringBuffer類的常用構(gòu)造方法:StringBuffer():建立一個長度16個字符的空的StringBuffer。StringBuffer(Stringstr):以指定String去初始化StringBuffer,并提供另外16個字符的空間供再次分配。3.2StringBuffer類193.String和StringBuffer類【編程實踐】StringBuffer類的常用方法:publicintcapacity():返回此StringBuffer對象的最大容量。publicintlength():返回此StringBuffer對象的實際長度。publicStringBufferdelete(intstart,intend):將本StringBuffer對象中[start,end)之間的字符刪除。publicStringBufferreplace(intstart,intend,Stringstr):將本StringBuffer對象中[start,end)之間的字符串用給定str字符串替換。3.2StringBuffer類203.String和StringBuffer類publicStringBufferinsert(intoffset,Stringstr):將給定str字符串插入到本StringBuffer對象的offset位置之前。publicStringBufferreverse():將本StringBuffer對象中的所有字符全部翻轉(zhuǎn)。publicStringtoString():將本StringBuffer對象轉(zhuǎn)換成String對象。

3.2StringBuffer類211JDKAPI幫助文檔2System和Math類4Date、Calendar和SimpleDateFormat類5讓我們一起來編程學(xué)習(xí)提綱3String和StringBuffer類224.Date、Calendar和SimpleDateFormat類Date類表示特定的瞬間,精確到毫秒。Date類中的大部分構(gòu)造方法和一般方法都已經(jīng)不推薦使用,建議采用Calendar類中的方法代替。

publicDate():當(dāng)前系統(tǒng)時間。publicDate(intyear,intmonth,intdate)4.1Date類234.Date、Calendar和SimpleDateFormat類Calendar類是一個抽象類,它為某一時刻和日期時間字段的轉(zhuǎn)換以及操作日期時間字段提供了很多方法。java.util.Calendar類常用的字段值列舉如下,詳細請參考JDK文檔。Calendar.YEAR:四位年份;Calendar.MONTH:月份(0-11);Calendar.DATE,Calendar.DAY_OF_MONTH:一月中的第幾天;Calendar.DAY_OF_YEAR:一年中的第幾天;Calendar.DAY_OF_WEEK:一周中的第幾天,即星期幾(1-7);4.2Calendar類244.Date、Calendar和SimpleDateFormat類Calendar.HOUR:12小時制的小時數(shù);Calendar.HOUR_OF_DAY:24小時制的小時數(shù);Calendar.MINUTE:分鐘;Calendar.SECOND:秒;4.2Calendar類254.Date、Calendar和SimpleDateFormat類【示例程序6-2】Calendar常用方法和操作示例(CalendarTest.java)功能描述:本程序測試了Calendar抽象類的常用方法和操作示例。Calendar類的基本方法和技巧:Calendar如何轉(zhuǎn)化為Date?Date轉(zhuǎn)化如何為Calendar?

取給定時間域的最大可能值publicfinalvoidset(intyear,intmonth,intdate)4.2Calendar類264.Date、Calendar和SimpleDateFormat類java.text.SimpleDateFormat是一個格式化和解析日期的具體類。日期時間的格式由模式字符串指定。模式格式串中的模式字母用來表示日期或時間字符串元素:yyyy表示四位年份、MM表示兩位月份、dd表示兩位日、hh表示兩位小時、mm表示兩位分鐘、ss表示兩位秒?!揪幊虒嵺`】用SimpleDateFormat的相關(guān)方法實現(xiàn)Date和String之間的轉(zhuǎn)換。4.3SimpleDateFormat類271JDKAPI幫助文檔2System和Math類4Date、Calendar和SimpleDateFormat5讓我們一起來編程學(xué)習(xí)提綱3String和StringBuffer類285.讓我們一起來編程【編程作業(yè)5-3】從身份證號中提取身份信息(IDInfo.java)編程要求:輸入18位身份證號,輸出你的性別、出生年月日(格式:1980年10月10日)、年齡等信息。10105197212121835用鍵盤輸入一個字符串用取子字符串方法分別提取性別、年份、出生年月日。用SimpleDateFormat類將出生年月日以指定格式輸出。將年份轉(zhuǎn)換為數(shù)字,計算年齡。5.1在身份證號中提取身份信息程序295.讓我們一起來編程【編程作業(yè)5-4】月歷(MonthlyCalendar.java)編程要求:從鍵盤輸入年份和月份,輸出該月的月歷。編程提示:從鍵盤輸入年份和月份(0-11)Calendar對象設(shè)置年,月,日。輸出該年該月1日是星期幾?Calendar.DAY_OF_WEEK。輸出該年該月的天數(shù)?publicintgetActualMaximum(intfield)。日一二三四五六5.2月歷程序敬請批評指正,謝謝!2023年第7周JDK常見類的使用二321Collection接口及其實現(xiàn)類2Map接口及其實現(xiàn)類4讓我們一起來編程學(xué)習(xí)提綱3Java計算生態(tài)331.Collection接口及其實現(xiàn)類數(shù)組用來存儲同一類型的多個數(shù)據(jù),使用簡單。但數(shù)組存在不能實現(xiàn)動態(tài)擴充、無法保存具有映射關(guān)系的數(shù)據(jù)、不能適應(yīng)多線程編程環(huán)境等缺點。為解決以上問題,Java提供了集合框架,基于十幾個集合接口及其實現(xiàn)類,通過提供數(shù)據(jù)結(jié)構(gòu)和算法,有效減少了編程工作量,同時提高了性能和安全性。Java集合框架主要包括Collection和Map兩大類。Collection接口及其實現(xiàn)類主要用來盛放對象(Object)。Map接口及其實現(xiàn)類用來盛放鍵值對(Key-Value)。

1.1Java集合框架簡介

341.Collection接口及其實現(xiàn)類Java集合框架主要接口及其實現(xiàn)類

351.Collection接口及其實現(xiàn)類學(xué)習(xí)Java集合框架時要仔細閱讀API幫助文檔,重點學(xué)習(xí)每種集合類的功能和特點,綜合考慮其存儲結(jié)構(gòu)、運行效率、線程安全、適用場景等因素,瀏覽構(gòu)造方法和常用方法,掌握以下編程基本操作技巧:掌握怎樣構(gòu)造集合?怎樣添加元素?怎樣讀取、修改元素?怎樣刪除元素?怎樣遍歷集合?……1.1Java集合框架簡介361.Collection接口及其實現(xiàn)類Collection是集合框架中的根接口,對一些基本的集合操作方法(Add、Get、Del、Modify等)進行了約束性規(guī)定。Collection接口的兩個主要子接口List、Set定義如下:publicinterfaceList<E>extendsCollection<E>:相當(dāng)于動態(tài)數(shù)組,其實現(xiàn)類實現(xiàn)了有序存儲、元素可重復(fù)的數(shù)據(jù)結(jié)構(gòu)。publicinterfaceSet<E>extendsCollection<E>:相當(dāng)于數(shù)學(xué)的集合,其實現(xiàn)類實現(xiàn)了無序存儲、元素不可重復(fù)的數(shù)據(jù)結(jié)構(gòu)。1.1Java集合框架簡介371.Collection接口及其實現(xiàn)類接口List定義了一個有序存儲、元素可重復(fù)的集合的實現(xiàn)要求。List相當(dāng)于線性表或動態(tài)數(shù)組。List默認按元素的添加順序作為元素的索引,與數(shù)組相同,索引從0開始。List允許通過索引來訪問List中的元素。ArrayList在內(nèi)存中采取連續(xù)存儲,適合元素的隨機存取。但在大量插入元素和刪除元素時效率會下降。LinkedList在內(nèi)存中采取隨機存儲,存取元素效率較低,但插入、刪除元素時效率很高。

1.2List接口及其實現(xiàn)類381.Collection接口及其實現(xiàn)類1.ArrayList應(yīng)用ArrayList是通過封裝了一個Object[]數(shù)組來實現(xiàn)的List類。ArrayList類具有不是線程安全、查詢速度快、增刪效率低慢等特點。ArrayList類的常用構(gòu)造方法:publicArrayList():構(gòu)造一個初始容量為10的空列表。publicArrayList(intinitialCapacity):構(gòu)造一個具有指定初始容量的空列表。初始存儲空間用完時可以按一定策略進行容量的自動擴充。1.2List接口及其實現(xiàn)類391.Collection接口及其實現(xiàn)類【示例程序7-1】ArrayList應(yīng)用示例(ArrayListTest.java)功能描述:本程序演示ArrayList的構(gòu)造方法和常用方法的使用方法,重點要求掌握構(gòu)建一個ArrayList實例、向集合中添加元素、讀取元素、修改元素、刪除元素、獲取集合元素個數(shù)、遍歷集合等基本操作。1.2List接口及其實現(xiàn)類401.Collection接口及其實現(xiàn)類LinkedList是功能最強大,使用最廣泛的Java集合實現(xiàn)類。根據(jù)LinkedList類的JDK源碼,可以知道LinkedList是通過鏈表來實現(xiàn)的List類。因此,LinkedList類增刪元素快,但查詢速度慢。堆棧(Stack)是一種操作受限的線性表,只能在棧頂插入元素,只能在棧頂刪除元素,即先進后出(FirstInLastOut)。利用LinkedList提供的push()、pop()方法可以方便地實現(xiàn)堆棧。1.3LinkedList應(yīng)用

411.Collection接口及其實現(xiàn)類隊列是一種操作受限的線性表,只能在隊尾插入元素,只能在隊首刪除元素,即FirstInFirstOut。利用LinkedList提供add()/offer()/addFirst()、poll()/removeFirst()方法可以方便地實現(xiàn)隊列。1.3LinkedList應(yīng)用

421.Collection接口及其實現(xiàn)類【示例程序7-2】LinkedList應(yīng)用示例(LinkedListTest.java)功能描述:本程序演示LinkedList的構(gòu)造方法和常用方法的使用方法,重點要求掌握構(gòu)建一個LinkedList實例、向集合中添加元素、讀取元素、修改元素、刪除元素、獲取集合元素個數(shù)、遍歷集合等基本操作。1.2List接口及其實現(xiàn)類431.Collection接口及其實現(xiàn)類Set是數(shù)學(xué)中的集合在Java中的實現(xiàn),具有無序性和唯一性(互異性)。Set主要有HashSet和TreeSet兩種實現(xiàn)。HashSet:類采用Hash技術(shù),其特性在于其內(nèi)對象的散列對象。優(yōu)點在于能夠快速定位元素。HashSet類不是線程同步的。TreeSet:是Set接口的另一個實現(xiàn)子類,相當(dāng)于有序集合,采用自平衡的排序二叉樹實現(xiàn)有序的集合。TreeSet既能保證元素的互異性(沒有重復(fù)的元素,即唯一性),并且自然順序的升序進行排列。

1.4HashSet應(yīng)用441.Collection接口及其實現(xiàn)類【示例程序7-3】HashSet應(yīng)用示例(HashSetTest.java)功能描述:本程序演示HashSet的構(gòu)造方法和常用方法的使用方法,重點要求掌握構(gòu)建一個HashSet實例、向集合中添加元素、讀取元素、修改元素、刪除元素、獲取集合元素個數(shù)、遍歷集合等基本操作。1.4HashSet應(yīng)用451Collection接口及其實現(xiàn)類2Map接口及其實現(xiàn)類4讓我們一起來編程學(xué)習(xí)提綱3Java計算生態(tài)462.Map接口及其實現(xiàn)類Map主要用來存儲鍵值對<Key/Value>對象的集合。一個Map的鍵(Key)是唯一的(不能重復(fù))。Map中每個鍵和值一一對應(yīng),因此,根據(jù)鍵(Key)可快速查詢出對應(yīng)的值(Value)。Map接口主要的實現(xiàn)類包括:HashMap和TreeMap。Map.Entry:Map類提供了一個稱為entrySet()的方法,這個方法返回一個Map.Entry實例化后的對象集。接著,Map.Entry類提供了一個getKey()方法和一個getValue()方法。2.1Map接口簡介

472.Map接口及其實現(xiàn)類Java集合框架中的接口及其實現(xiàn)類套路固定,注意知識的遷移和同化。查閱API幫助文檔,熟悉構(gòu)造方法和常用方法,了解共性和個性?!臼纠绦?-4】HashMap應(yīng)用示例(HashMapTest.java)功能描述:本程序定義要Student類,學(xué)號做Key,Student對象做Value,將其加入HashMap中,演示了構(gòu)建HashMap對象、添加元素、刪除元素、三種方法遍歷HashMap等基本操作。2.2HashMap應(yīng)用

482.Map接口及其實現(xiàn)類TreeMap基于紅黑樹的NavigableMap實現(xiàn)。紅黑樹是一種自平衡二叉查找樹。TreeMap根據(jù)其鍵的自然順序進行排序,或者根據(jù)創(chuàng)建TreeMap時提供的Comparator進行排序。TreeMap和HashMap使用方法幾乎完全一樣。2.3TreeMap應(yīng)用

492.Map接口及其實現(xiàn)類【編程任務(wù)】字符統(tǒng)計程序編程要求:通過鍵盤輸入一個字符串,按字母順序打印出每個字符及其出現(xiàn)次數(shù)。編程提示:用TreeMap<Character,Integer>實現(xiàn)。循環(huán)遍歷該字符串的每一個字符,如果TreeMap中已經(jīng)存儲該字符,則出現(xiàn)次數(shù)加1,否則,存儲該字符,出現(xiàn)次數(shù)為1。2.3TreeMap應(yīng)用

501Collection接口及其實現(xiàn)類2Map接口及其實現(xiàn)類4讓我們一起來編程學(xué)習(xí)提綱3Java計算生態(tài)513.Java計算生態(tài)開發(fā)Java應(yīng)用程序就像搭積木一樣,Java應(yīng)用程序可以調(diào)用自己的類和方法,也可以調(diào)用JDKAPI提供的類和方法,當(dāng)然還可以調(diào)用第三方提供的類和方法。Java擁有全球最大的開發(fā)者專業(yè)社群,構(gòu)建了一個完整開放的計算生態(tài)??傊?,我們可以編寫極少的代碼,完成更加強大的功能。

中文繁簡轉(zhuǎn)換包:ZHConverter漢語拼音工具包:PinYin4jOffice文檔讀寫包:ApachePOI表達式求值引擎:Aviator523.Java計算生態(tài)對于中文的繁簡體轉(zhuǎn)換是一種很常見的需求。ZHConverter是一個簡繁體中文互換的Java開源類庫。JavaProject使用第三方Jar包的步驟:下載jar包:ZHConverter在JavaProject中建立專門存放第三方類為的folder:lib,如已建立可以略過本步驟。將jar包復(fù)制到lib中,右擊BuildPath->AddtoBuildPath,Jar包就會添加到ReferencedLibrary中。 3.1中文簡繁轉(zhuǎn)換

533.Java計算生態(tài)【示例程序7-5】中文簡繁轉(zhuǎn)換應(yīng)用示例(HashMapTest.java)功能描述:本程序使用ZHConverter包實現(xiàn)中文字符串的簡體和繁體轉(zhuǎn)換。3.1中文簡繁轉(zhuǎn)換

543.Java計算生態(tài)3.1中文簡繁轉(zhuǎn)換

553.Java計算生態(tài)Pinyin4j是一個功能強悍的漢語拼音工具包,是上的一個開源項目。Pinyin4j可以將中文(多音字,繁體字)轉(zhuǎn)成拼音,并且拼音輸出格式可以定制。下載jar包:下載地址:/artifact/com.belerweb/pinyin4j/2.5.0將jar包復(fù)制到lib中,右擊BuildPath->AddtoBuildPath,Referenc

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論