Java的核心APIppt課件_第1頁
Java的核心APIppt課件_第2頁
Java的核心APIppt課件_第3頁
Java的核心APIppt課件_第4頁
Java的核心APIppt課件_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 Java的中心API 本章內(nèi)容: java中的中心API,Object、System、Math、String、StringBuffer、Date、Calendar、DateFormat類的功能和運(yùn)用方法,數(shù)組的定義和運(yùn)用。要求: 重點(diǎn)掌握String、StringBuffer的區(qū)別,數(shù)組的運(yùn)用,以及Java協(xié)助文檔的運(yùn)用。第四章 Java的中心API 4.1 言語根底類庫(kù)4.2 數(shù)組 4.3 字符串4.4 日期類多數(shù)編程言語都有預(yù)選編譯好的類庫(kù)以支持各種特定的功能在Java中,類庫(kù)以包package的方式提供不同版本的Java提供不同的包,以面向特定的運(yùn)用Java2平臺(tái)包括規(guī)范版J2S

2、E、企業(yè)版J2EE和微縮版J2ME三個(gè)版本4.1 Java開發(fā)類庫(kù)組成Standard EditionJ2SE包含那些構(gòu)成Java言語中心 (規(guī)范版)的類。數(shù)據(jù)庫(kù)銜接、接口定義、輸入/輸出、網(wǎng)絡(luò)編程Enterprise Edition J2EE 包含J2SE 中的類,并且還包 (企業(yè)版) 含用于開發(fā)企業(yè)級(jí)運(yùn)用的類。EJB、servlet、JSP、XML、事務(wù)控制Micro Edition J2ME 包含J2SE中一部分類,用于 (微縮版) 消費(fèi)類電子產(chǎn)品的軟件開發(fā)。呼機(jī)、智能卡、手機(jī)、PDA、機(jī)頂盒4.1 Java開發(fā)類庫(kù)組成Java2的三個(gè)版本 Java提供了豐富的規(guī)范類來協(xié)助程序設(shè)計(jì)者更方

3、便快捷地編寫程序,這些規(guī)范類組成了類包,主要有:java.lang java.awtjava.applet java.awt.imagejava.awt.peer java.io java.util 除了java.lang之外,其他類包都不是java言語所必需的。4.1 Java開發(fā)類庫(kù)組成J2SE的類包Languagejava.lang構(gòu)成Java言語中心的類Object, Math, String, Number, Exception, System, Runtime Utilitiesjava.util提供適用的數(shù)據(jù)構(gòu)造 Vector, Stack, Hashtable / Colloe

4、ction, List, Set, Map I/Ojava.io提供多種類型的輸出/輸出InputStream, OutputStream, Reader, Writer, RandomAccessFile, FileTextjava.text文本/日期/數(shù)字/音訊的本地化支持NumberFormat, DateFormat, and CollatorMathjava.math提供恣意精度的整數(shù)和浮點(diǎn)數(shù)運(yùn)算AWT java.awt用戶接口設(shè)計(jì)和事件處置Swingjavax.swing提供全Java的,在任何平臺(tái)上表現(xiàn)都一樣的輕量級(jí)構(gòu)件4.1 Java開發(fā)類庫(kù)組成J2SE的類包Javaxjava

5、x 對(duì)Java言語的擴(kuò)展Appletjava.applet 用于創(chuàng)建Applet的類Beansjava.beans 用于開發(fā)JavaBeans的類Reflectionjava.lang.reflect 用于動(dòng)態(tài)獲取類信息的類SQLjava.sql 提供對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的訪問和處置Connection, ResultSet, StatementRMIjava.rmi 支持分布式編程N(yùn)etworking 支持開發(fā)網(wǎng)絡(luò)運(yùn)用的類Socket, URL, URLConnectionSecurityjava.security支持訪問控制和信息平安的類用于訪問控制,防止非信任代碼執(zhí)行關(guān)鍵操作認(rèn)證相關(guān)的類,實(shí)現(xiàn)

6、了音訊摘要和數(shù)字簽名與數(shù)字認(rèn)證等4.1 Java開發(fā)類庫(kù)組成J2SE的類包1java.lang 本類包中包含了各種定義java言語時(shí)必需的類,這些類可以以其他類不能運(yùn)用的方式訪問java的內(nèi)部。任何java程序都將自動(dòng)引入這個(gè)包。其中的類包括: Object類:java中最原始、最重要的類,每個(gè)java類都是它的子類,它實(shí)現(xiàn)了每個(gè)類都必需具有的根本方法。 根本類型包裝器:Boolean, Character, Number, Double, Float, Integer, Long。 String類:字符串類。 Math類:數(shù)學(xué)函數(shù)的集合。 執(zhí)行線程:類Thread, ThreadGroup,

7、 接口Runable。 異常和錯(cuò)誤:類Exception, Error, 接口Throwable。4.1 Java開發(fā)類庫(kù)組成J2SE的類包1java.lang 運(yùn)轉(zhuǎn)環(huán)境:可以經(jīng)過類Runtime和System訪問外部系統(tǒng)環(huán)境。System類的兩個(gè)常用功能就是訪問規(guī)范輸入/輸出流和錯(cuò)誤流、退出程序。 其他類:接口Cloneable、運(yùn)轉(zhuǎn)時(shí)的類等。2java.applet Java Applet是Java編程的一個(gè)主要魅力,java.applet類包提供了Applet的運(yùn)轉(zhuǎn)機(jī)制以及一些編寫Applet非常有用的方法。4.1 Java開發(fā)類庫(kù)組成J2SE的類包3 java.awt 本類包是各種窗口

8、環(huán)境的一致界面AWT代表Abstract Windows Toolkit,即籠統(tǒng)窗口工具包,其中的類使得創(chuàng)建諸如窗口、菜單、滾動(dòng)條、文本區(qū)、按鈕以及復(fù)選框等圖形用戶界面GUI的元素變得非常容易。4 java.awt.image 類包可以以獨(dú)立于設(shè)備的方式加載并過濾位圖圖象。5 java.awt.peer java.awt.peer是全部awt組件的對(duì)等對(duì)象接口的集合,每個(gè)接口都提供了機(jī)器相關(guān)根本的方法,awt運(yùn)用這些方法來實(shí)現(xiàn)GUI,而不用關(guān)懷是何種機(jī)器或操作系統(tǒng)。4.1 Java開發(fā)類庫(kù)組成J2SE的類包6 java.io Java的輸入/輸出方式是完全建立在流的根底之上的。流是一種字節(jié)從一

9、個(gè)地方到另一個(gè)地方的單向流動(dòng),可以把流附加于文件、管道和通訊鏈路等。 java.io類包中定義的許多種流類經(jīng)過承繼的方式進(jìn)展組織,其中也包括一些用來訪問本地文件系統(tǒng)上的文件的流類。7 類包用來完成與網(wǎng)絡(luò)相關(guān)的功能:URL、WWW銜接以及更為通用的Socket網(wǎng)絡(luò)通訊。8 java.util java.util類包包含了一些適用類和有用的數(shù)據(jù)構(gòu)造,如字典(Dictionary)、散列表(Hashtable)、堆棧(Stack)、向量(Vectro)以及枚舉類(Enumeration)等。4.1 Java開發(fā)類庫(kù)組成J2SE的類包4.1 言語根底類庫(kù)Object類數(shù)據(jù)類型類Math類System類

10、一Object類Object類是Java中一切類的直接或間接父類。它的主要方法如下:protected Object clone();要實(shí)現(xiàn)Cloneable接口,覆蓋publicclone()方法,調(diào)用super.clone()生成當(dāng)前對(duì)象的一個(gè)拷貝,并前往這個(gè)復(fù)制對(duì)象public boolean equals(Object obj);比較兩個(gè)對(duì)象能否一樣,是那么前往truepublic final Class getClass();獲取當(dāng)前對(duì)象所屬的類信息,前往Class對(duì)象ptotected void finalize();定義回收當(dāng)前對(duì)象所需完成的清理任務(wù)public String t

11、oString();前往當(dāng)前對(duì)象的有關(guān)信息,按字符串對(duì)象前往二數(shù)據(jù)類型類JRE5.0開場(chǎng)提供自動(dòng)拆裝箱機(jī)制,自動(dòng)完成類型轉(zhuǎn)換數(shù)據(jù)類型類基本數(shù)據(jù)類型BooleanbooleanCharactercharDoubledoubleFloatfloatIntegerintLonglong三Math類public final static double E;/數(shù)學(xué)常量epublic final static double PI; /圓周率常量public static double abs(double a); /絕對(duì)值public static double acos(double a); /反余弦p

12、ublic static double exp(double a); /e的參數(shù)次冪public static double log(double a); /自然對(duì)數(shù)public static double ramdom(); /產(chǎn)生0到1(不含1)之間的偽隨機(jī)數(shù)public static double pow(double a, double a);/乘方public static double sqrt(double a); /平方public static double rint(double a); /四舍五入四System類System不能實(shí)例化,所以它的一切方法和屬性都是stati

13、c的。三個(gè)屬性:public static PrintStream err; /規(guī)范錯(cuò)誤輸出public static InputStream in; /規(guī)范輸入public static PrintStream out; /規(guī)范輸出常用方法public static void exit(int status); /強(qiáng)迫退出運(yùn)轉(zhuǎn)形狀,并把形狀信息前往給運(yùn)轉(zhuǎn)虛擬機(jī)的操作系統(tǒng)。例子:System.exit(0);其中0是正常退出,非0是異常退出public static getProperties(); /前往當(dāng)前系統(tǒng)屬性集合4.2、數(shù)組一維數(shù)組:定義一維數(shù)組的定義方式為: type arrayN

14、ame ; 其中類型(type)可以為Java中恣意的數(shù)據(jù)類型,包 括簡(jiǎn)單類型和組合類型,數(shù)組名arrayName為一個(gè) 合法的標(biāo)識(shí)符, 指明該變量是一個(gè)數(shù)組類型變量。 例如: int intArray ; 聲明了一個(gè)整型數(shù)組,數(shù)組中的每個(gè)元素為整型數(shù)據(jù)。 我們還可以定義一個(gè)復(fù)合類型的數(shù)組,例如: Date dateArray ;聲明了一個(gè)包容復(fù)合數(shù)據(jù)類型Date的數(shù)組。 與C、C+不同,Java在數(shù)組的定義中并不為數(shù)組元素分配內(nèi)存,因此 中不用指出數(shù)組中元素的個(gè)數(shù),即數(shù)組長(zhǎng)度,而且對(duì)于如上定義的一個(gè)數(shù)組是不能訪問它的任何元素的。必需經(jīng)過初始化后,才干運(yùn)用數(shù)組的元素。4.2 、數(shù)組一維數(shù)組:定

15、義 除了這種定義數(shù)組的方式之外,java言語還提供了其他的定義方式,如下所示:type arrayName; 對(duì)于以上舉出的例子,我們也可以這樣定義:int intArray; Date dateArray;4.2 、數(shù)組一維數(shù)組:定義一維數(shù)組定義之后,必需經(jīng)過初始化才可以援用。數(shù)組的初始化分為靜態(tài)初始化和動(dòng)態(tài)初始化兩種: 靜態(tài)初始化:在定義數(shù)組的同時(shí)對(duì)數(shù)組元素進(jìn)展初始化,例如: int intArray =1,2,3,4;/定義了一個(gè)含有4個(gè) / 元素的int型數(shù)組。1、數(shù)組一維數(shù)組:初始化 動(dòng)態(tài)初始化:運(yùn)用運(yùn)算符new為數(shù)組分配空間,對(duì)于簡(jiǎn)單類型的數(shù)組,其格式如下: type arrayN

16、ame =new typearraySize; type arrayName=new typearraySize;對(duì)于復(fù)合類型的數(shù)組,需求經(jīng)過兩步空間分配。 首先: type arrayName =new typearraySize; 然后:arrayName0=new type(paramList); arrayNamearraySize-1=new type(paramList);4.2、數(shù)組一維數(shù)組:初始化例如:String stringArrar; /定義一個(gè)String類型的數(shù)組stringArray = new String3; /給數(shù)組stringArray分配3個(gè)運(yùn)用 /空間,

17、初始化每個(gè)援用值為nullstringArray0=new String(“how);stringArray1=new String(“are);stringArray2=new String(“you);初始化各數(shù)組元素4.2、數(shù)組一維數(shù)組:初始化當(dāng)定義了一個(gè)數(shù)組,并用運(yùn)算符new為它分配了內(nèi)存空間后,就可以援用數(shù)組中的每一個(gè)元素了。元素的援用方式為: arrayNameindex index為數(shù)組下標(biāo),可以是整型常數(shù)或表達(dá)式,如:arrayName1, arrayNamei, arrayName6*i等。下標(biāo)是0序的,即從0開場(chǎng),不斷到數(shù)組長(zhǎng)度減1。4.2、數(shù)組一維數(shù)組:援用 另外,與C、

18、C+中不同,Java對(duì)數(shù)組元素要進(jìn)展越界檢查以保證平安性。同時(shí),對(duì)于每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度,例如: intArray.length指明數(shù)組intArray的長(zhǎng)度。 4.2、數(shù)組一維數(shù)組:邊境檢查 public class ArrayTest public static void main( String args ) int i; int a = new int5; for( i=0; i=0; i- ) System.out.println(a+i+ = +ai); 該程序?qū)?shù)組中的每個(gè)元素賦值,然后按逆序輸出。 4.2、數(shù)組一維數(shù)組:例如運(yùn)轉(zhuǎn)結(jié)果為:C:java Ar

19、rayTest a4 = 4a3 = 3 a2 = 2 a1 = 1a0 = 04.2、數(shù)組一維數(shù)組:例如在任何言語中,多維數(shù)組都被看作數(shù)組的數(shù)組。比如二維數(shù)組是一個(gè)特殊的一維數(shù)組,其每一個(gè)元素又是一個(gè)一維數(shù)組。我們主要以二維數(shù)組為例來闡明,高維數(shù)組與此類似。4.2、數(shù)組多維數(shù)組二維數(shù)組的定義方式 type arrayName ; 例如: int intArray ; 也可以采用另一種定義方式: type arrayName;與一維數(shù)組一樣,這時(shí)對(duì)數(shù)組元素也沒有分配內(nèi)存空間,同樣要運(yùn)用運(yùn)算符new來分配內(nèi)存,然后才可以訪問每個(gè)元素。4.2、數(shù)組二維數(shù)組:定義二維數(shù)組的初始化也分為靜態(tài)和動(dòng)態(tài)兩種

20、。 靜態(tài)初始化:在定義數(shù)組的同時(shí)為數(shù)組分配空間。 int intArray =1,2,2,3,3,4;不用指出數(shù)組每一維的大小,系統(tǒng)會(huì)根據(jù)初始化時(shí)給出的初始值的個(gè)數(shù)自動(dòng)算出數(shù)組每一維的大小。4.2、數(shù)組二維數(shù)組:初始化動(dòng)態(tài)初始化:對(duì)高維數(shù)組來說,分配內(nèi)存空間有下面兩種方法:1.直接為每一維分配空間,如: type arrayName =new typearraylength1arraylength2例如: int a =new int23;4.2、數(shù)組二維數(shù)組:初始化2.從最高維開場(chǎng)而且必需從最高維開場(chǎng),分別為每一維分配空間,如: String s =new String2 ; s0=new

21、String2; s1=new String3; s00=new String(“Good); s01=new String(“Luck); s10=new String(“to); s11=new String(“you); s12=new String(“!);4.2、數(shù)組二維數(shù)組:初始化二維數(shù)組的援用 對(duì)二維數(shù)組中每個(gè)元素,援用方式為: arrayNameindex1index2 其中index1和index2為數(shù)組下標(biāo),為整型常數(shù)和表達(dá)式,都是0序的。二維數(shù)組舉例 兩個(gè)矩陣相乘,參照參考書在課余時(shí)間上機(jī)練習(xí)。4.2、數(shù)組二維數(shù)組:援用及例如數(shù)組是用來表達(dá)一組同類型數(shù)據(jù)的數(shù)據(jù)構(gòu)造在Jav

22、a中數(shù)組是定長(zhǎng)的,數(shù)組的大小不會(huì)動(dòng)態(tài)變化數(shù)組變量的值是數(shù)組對(duì)象實(shí)例的援用在java.util包中的Arrays類提供了一些操作數(shù)組的方法在java.util包中的Vector提供了動(dòng)態(tài)變長(zhǎng)數(shù)組的功能,Vector的容量可以隨著需求變化4.2、數(shù)組java.util.Arraysint binarySearch(type a, type key)數(shù)組a必需曾經(jīng)排序,否那么前往值無意義當(dāng)數(shù)組a中有反復(fù)的值時(shí),該方法前往的值不確定假設(shè)key存在,那么前往它在數(shù)組a中的位置假設(shè)不存在,那么前往它的“-(插入位置-1)void fill(type a, type val)void fill(type a

23、, int fromIndx, int toIndex, type val)包括afromIndx,但不包括atoIndexfromIndx= toIndex時(shí),范圍是一個(gè)空的范圍4.2、數(shù)組java.util.Arraysboolean equals(type a, type a2)兩個(gè)數(shù)組大小一樣,并且每一個(gè)元素相等兩個(gè)null數(shù)組是相等的4.2、數(shù)組java.util.Arraysvoid sort(type a)void sort(type a, int fromIndx, int toIndex)void sort(type a, Comparatorc)void sort(type

24、 a, int fromIndx, int toIndex, Comparatorc)包括afromIndx,但不包括atoIndexfromIndx= toIndex時(shí),范圍是一個(gè)空的范圍排序算法都具有n*log(n)的計(jì)算復(fù)雜性,效率高排序算法都保證穩(wěn)定,即排序算法不會(huì)改動(dòng)相等元素的順序?qū)Σ煌愋偷臄?shù)組,算法的實(shí)現(xiàn)并不完全一樣可以用本人的Comparator對(duì)象聲明自定義的順序4.2、數(shù)組java.util.ArraysCopyof(int a,int newlength):java.lang.Systemvoid arraycopy(Objectsrc, intsrc_position,

25、 Objectdst, intdst_position, intlength)范圍不能越界可對(duì)任何同類型的數(shù)組進(jìn)展復(fù)制數(shù)組復(fù)制過程中做嚴(yán)厲的類型檢查更詳細(xì)的內(nèi)容參見JDK文檔4.2、數(shù)組數(shù)組的復(fù)制 向量(Vector)是java.util類包提供的一個(gè)工具類。它對(duì)應(yīng)于類似數(shù)組的順序存儲(chǔ)的數(shù)據(jù)構(gòu)造,但是具有比數(shù)組更強(qiáng)大的功能。它是允許不同類型元素共存的變長(zhǎng)數(shù)組。每個(gè)Vector類的對(duì)象可以表達(dá)一個(gè)完好的數(shù)據(jù)序列。Vector類的對(duì)象不但可以保管順序的一列數(shù)據(jù),而且還提供了許多有用的方法來操作和處置這些數(shù)據(jù)。 另外,Vector類對(duì)象所表達(dá)的序列中元素的個(gè)數(shù)是可變的,即Vector實(shí)現(xiàn)了變長(zhǎng)數(shù)組。

26、4.2、向量 Java中的數(shù)組只能保管固定數(shù)目的元素,且必需把一切需求的內(nèi)存單元一次性的懇求出來,而不能先創(chuàng)建數(shù)組再追加數(shù)組元素?cái)?shù)量,為理處理這個(gè)問題Java中引入了向量類Vector。Vector也是一組對(duì)象的集合,但相對(duì)于數(shù)組,Vector可以追加對(duì)象元素?cái)?shù)量,可以方便的修正和維護(hù)序列中的對(duì)象。4.2、向量向量比較適宜在如下情況下運(yùn)用: 1. 需求處置的對(duì)象數(shù)目不定,序列中的元素都是對(duì)象或可以表示為對(duì)象。 2. 需求將不同類的對(duì)象組合成一個(gè)數(shù)據(jù)序列。 3. 需求做頻繁的對(duì)象序列中元素的插入和刪除。 4. 經(jīng)常需求定位序列中的對(duì)象和其他查找操作。 5. 在不同的類之間傳送大量的數(shù)據(jù)。 Vec

27、tor類的方法相對(duì)于數(shù)組要多一些,但是運(yùn)用這個(gè)類也有一定的局限性,例如其中的對(duì)象不能是簡(jiǎn)單數(shù)據(jù)類型等。4.2、向量Vector類有三個(gè)構(gòu)造函數(shù): Vector():構(gòu)造一個(gè)空的向量 Vector(int capacity):以指定的存儲(chǔ)容量構(gòu)造一個(gè)空的向量 Vector(int capacity, int capacityIncrement):以指定的存儲(chǔ)容量和容量增量構(gòu)造一個(gè)空的Vector。例如: Vector MyVector=new Vector(100,50); 這個(gè)語句創(chuàng)建的MyVector向量序列初始有100個(gè)元素的空間,以后一旦運(yùn)用殆盡那么以50為單位遞增,使序列中元素的個(gè)數(shù)變

28、化成150,200,。在創(chuàng)建Vector序列時(shí),不需求指明序列中元素的類型,可以在運(yùn)用時(shí)確定。4.2、向量 創(chuàng)建向量類的對(duì)象有兩種添加元素的方法: addElement( Object obj):將新元素添加到序列尾部。 insertElementAt(Object obj, int index):將新元素插 入到指定位置。4.2、向量向向量序列中添加元素下面是運(yùn)用這兩種方法的例子:Vector MyVector=new Vector();for (int i=1;i=10;i+) MyVector.addElement(new Random();MyVector.insertElementA

29、t(middle,5);4.2、向量向向量序列中添加元素運(yùn)用以下方法修正或刪除向量序列中的元素: 1. setElementAt(Object obj,int index) 將向量序列index位置處的對(duì)象元素設(shè)置成為obj,如果這個(gè)位置原來有元素那么被覆蓋。 2. removeElement(Object obj) 刪除向量序列中第一個(gè)與指定的obj對(duì)象一樣的元素,同時(shí)將后面的元素前提,補(bǔ)上空位。這個(gè)方法前往的是布爾值。 3. removeElementAt(int index) 刪除index指定位置處的元素,同時(shí)將后面的元素前提。4.2、向量修正或刪除向量序列中的元素4. removeAllElements() 去除向量序列中的一切元素。下例中先創(chuàng)建了一個(gè)Vector,再刪除掉其中的一切字符串對(duì)象“to。Vector MyVector=new Vector(100);for (int i=0;ijava demoOfStringBuffer buffer=abclength=3capacity=192. append public synchronized StringBuffer append(對(duì)象類型 對(duì)象名) ap

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論