JAVA-標(biāo)準(zhǔn)類庫匯總課件_第1頁
JAVA-標(biāo)準(zhǔn)類庫匯總課件_第2頁
JAVA-標(biāo)準(zhǔn)類庫匯總課件_第3頁
JAVA-標(biāo)準(zhǔn)類庫匯總課件_第4頁
JAVA-標(biāo)準(zhǔn)類庫匯總課件_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章Java標(biāo)準(zhǔn)類庫1第4章Java標(biāo)準(zhǔn)類庫14.1語言基礎(chǔ)類庫-Object類類java.lang.Object處于java開發(fā)環(huán)境的類層次的根部,其它所有的類都是直接或間接地繼承了此類。該類定義了一些最基本的狀態(tài)和行為。

Java中所有的其他類都是從Object類派生。構(gòu)造方法:Object()24.1語言基礎(chǔ)類庫-Object類類java.lang.Oinstanceof運算符instanceof運算符是一個常用的運算符,該運算符是雙目運算符,左面的操作元是一個對象,右面是一個類。當(dāng)左面的對象是右面的類創(chuàng)建的對象時,該運算符運算的結(jié)果是true,否則是false。例如:if(b1instanceofButton)doDealB1();其中b1是對象,Button是一個類名。3instanceof運算符instanceof運算符是一【例】getClass和Instanceof方法的使用//ClassAndInstance.javaclassSubClass{}classSuperClassextendsSubClass{}publicclassClassAndInstance{publicstaticvoidmain(String[]args){test(newSubClass());test(newSuperClass());}staticvoidtest(Objectx){System.out.println("Testingxoftype"+x.getClass());System.out.println("xinstanceofSubClass"+(xinstanceofSubClass));System.out.println("xinstanceofSuperClass"+(xinstanceofSuperClass));}}4【例】getClass和Instanceof方法的使用4基本類型的包裝類:每一種基本類型都有一個相應(yīng)的包裝類,這些類定義在java.lang包中: byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean基本類型名相應(yīng)的包裝類類名4.2數(shù)據(jù)類型類5基本類型的包裝類:基本類型名相應(yīng)的包裝類類名4.2數(shù)據(jù)類NumberDouble,F(xiàn)loatByte,Short,Integer,Long數(shù)字和字符串的轉(zhuǎn)換CharacterBoolean6Number64.2.1Number類抽象類Number定義了一個包裝數(shù)字類型:字節(jié)型(Byte),短整型(Short),整型(Integer),長整型(Long),浮點型(Float)和雙精度型(Double)的超類。定義了從包裝器返回基本類型的方法doubledoubleValue(),floatfloatValue()bytebyteValue(),,intintValue(),longlongValue(),shortshortValue()74.2.1Number類抽象類Number定義了一個包裝4.2.1Double和Float雙精度(Double)和浮點(Float)分別是對類型double和類型float的浮點值的包裝器。構(gòu)造方法Float(doublevalue),Float(floatvalue),Float(Strings)Double(doublevalue)Double(Strings)84.2.1Double和Float雙精度(Double)和Float和Double中定義的常量MAX_VALUE最大正值MIN_VALUE最小正值NaN非數(shù)字POSITIVE_INFINITY正無窮NEGATIVE_INFINITY負(fù)無窮9Float和Double中定義的常量MAX_VALUE最大Float和Double中定義的主要方法intcompareTo(),比較兩個對象staticfloatparseFloat(Strings)把字符串轉(zhuǎn)換成floatstaticFloatvalueOf(Strings)把字符串轉(zhuǎn)換成FloatstaticfloatparseDouble(Strings)把字符串轉(zhuǎn)換成doublestaticDoublevalueOf(Strings)把字符串轉(zhuǎn)換成Double10Float和Double中定義的主要方法intcomparDouble,Float例子//提取簡單類型值f=F.floatValue();

d=D.doubleValue();

System.out.println(f);System.out.println(d);//比較System.out.println(D.equals(F));floatf=3.1415f;doubled=3.14159267;FloatF=newFloat(f);DoubleD=newDouble(d);//轉(zhuǎn)化為字符串System.out.println(F.toString());System.out.println(D.toString());

11Double,Float例子//提取簡單類型值float4.2.3Byte,Short,Integer,Long

Byte,Short,Integer,和Long類分別是字節(jié)型(byte),短整型(short),整型(int)和長整型(long)整數(shù)類型的包裝器構(gòu)造函數(shù)Byte(bytevalue),Byte(Stringstr)Short(shortvalue),Short(Stringstr)Integer(intvalue),Integer(Stringstr)Long(longvalue),Long(Stringstr)124.2.3Byte,Short,Integer,Lo定義的主要方法parseByte,parseInt,parseShort,parseLong,把字符串轉(zhuǎn)化成數(shù)字類型valueOf(),把字符串轉(zhuǎn)化成數(shù)字類型包裝器把數(shù)字轉(zhuǎn)化成字符串staticStringtoBinaryString(intvalue)staticStringtoHexString(intvalue)staticStringtoOctalString(intvalue)staticStringtoString(intvalue)staticStringtoString(intvalue,intradix)13定義的主要方法parseByte,parseInt,pa4.2.4數(shù)字和字符串的轉(zhuǎn)換字符串向數(shù)字的轉(zhuǎn)換parseByte(),parseShort(),parseInt()和parseLong()數(shù)字向字符串的轉(zhuǎn)換staticStringtoBinaryString(intvalue)staticStringtoHexString(intvalue)staticStringtoOctalString(intvalue)staticStringtoString(intvalue)staticStringtoString(intvalue,intradix)144.2.4數(shù)字和字符串的轉(zhuǎn)換字符串向數(shù)字的轉(zhuǎn)換14數(shù)字字符串轉(zhuǎn)換示例1Strings1="12";Strings2="34";Strings=null;inti1=0,i2=0,sum=0;//把字符串轉(zhuǎn)換成整數(shù)

i1=Integer.parseInt(s1);i2=newInteger(s2).intValue();sum=i1+i2;//把整數(shù)轉(zhuǎn)換成字符串

s=Integer.toString(sum);System.out.println(s);15數(shù)字字符串轉(zhuǎn)換示例1Strings1=數(shù)字字符串轉(zhuǎn)換示例2inti=-34567;Strings=null;//轉(zhuǎn)換成二進制字符串System.out.println("2進制字串:"+Integer.toBinaryString(i));//轉(zhuǎn)換成8進制字符串System.out.println("8進制字符串:"+Integer.toOctalString(i));//轉(zhuǎn)換成16進制字符串System.out.println("16進制字符串:"+Integer.toHexString(i));//轉(zhuǎn)換成帶符號表示的8進制字符串s=Integer.toString(i,8);System.out.println("帶符號8進制字符串:"+s);//從8進制字符串轉(zhuǎn)化成Integer對象IntegerI=Integer.valueOf(s,8);System.out.println("Integer對象中的值:"+I.intValue());16數(shù)字字符串轉(zhuǎn)換示例2inti=-34567;s=4.2.5CharacterCharacter是圍繞字符型(char)的一個簡單的包裝器。Character的構(gòu)造函數(shù)如下:Character(charch)Character類定義了很多常數(shù)和靜態(tài)方法。isDigit(charch),isLetter(charch)isLowerCase(charch),toUpperCase(charch)174.2.5CharacterCharacter是圍繞字符型4.2.6BooleanBoolean是一個圍繞布爾(boolean)值的非常細(xì)小的包裝器,主要用在通過引用傳遞布爾(boolean)變量的場合。構(gòu)造函數(shù)Boolean(booleanboolValue)Boolean(StringboolString)Strings="true";booleanb=true;if(b==newBoolean(s).booleanValue()){System.out.println("兩個布爾變量相等");}System.out.println(Boolean.valueOf(s).hashCode());184.2.6BooleanBoolean是一個圍繞布爾(bojava.lnag.Object中對hashCode的約定:

在一個應(yīng)用程序執(zhí)行期間,如果一個對象的equals方法做比較所用到的信息沒有被修改的話,則對該對象調(diào)用hashCode方法多次,它必須始終如一地返回同一個整數(shù)。

如果兩個對象根據(jù)equals(Objecto)方法是相等的,則調(diào)用這兩個對象中任一對象的hashCode方法必須產(chǎn)生相同的整數(shù)結(jié)果。

如果兩個對象根據(jù)equals(Objecto)方法是不相等的,則調(diào)用這兩個對象中任一個對象的hashCode方法,不要求產(chǎn)生不同的整數(shù)結(jié)果。但如果能不同,則可能提高散列表的性能。19java.lnag.Object中對hashCode的約定:4.3SystemSystem類保存靜態(tài)方法和變量的集合。標(biāo)準(zhǔn)的輸入,輸出和Java運行時錯誤輸出存儲在變量in,out和err中。定義的主要方法見下表204.3SystemSystem類保存靜態(tài)方法和變量的集合。System的主要方法1staticvoidarraycopy(Objectsource,intStart,Objecttarget,intStart,intsize)復(fù)制數(shù)組。staticlongcurrentTimeMillis()返回自1970年1月1日午夜至今的時間,時間單位為毫秒。staticvoidexit(intexitCode)返回exitCode值給父進程staticvoidgc()建議JVM進行垃圾回收staticPropertiesgetProperties()返回與Java運行系統(tǒng)有關(guān)的屬性類staticStringgetProperty(Stringkey)返回與key有關(guān)的屬性。21System的主要方法1staticvoidarraycSystem的主要方法2staticStringgetProperty(Stringkey,Stringdefault)返回一個與key有關(guān)的屬性。如果期望的屬性沒有被發(fā)現(xiàn),則返回defaultstaticSecurityManagergetSecurityManager()返回當(dāng)前的安全管理程序,如果沒有安裝安全管理程序,則返回一個空對象(nullobject)staticvoidload(StringlibraryFileName)載入其文件由libraryFileName指定的動態(tài)庫,必須指定其完全路徑staticvoidloadLibrary(StringlibraryName)載入其庫名為libraryName的動態(tài)庫staticStringmapLibraryName(Stringlib)對應(yīng)名為lib的庫,返回一個指定平臺的名字staticvoidrunFinalization()啟動調(diào)用不用的但還不是回收站中的對象的finalize()方法。22System的主要方法2staticStringgetPSystem的主要方法3staticvoidsetProperties(PropertiessysProperties)設(shè)置由sysProperties指定的當(dāng)前系統(tǒng)屬性StaticStringsetProperty(Stringkey,Stringvalue)將value值賦給名為key的屬性staticvoidsetSecurityManager(SecurityManagers)設(shè)置由s指定的安全管理程序23System的主要方法3staticvoidsetPro例:記錄程序執(zhí)行的時間publicclassElapsed{publicstaticvoidmain(String[]args){longstart,end,sum=0;System.out.println("aloopfrom0to1,000,000,000");start=System.currentTimeMillis();for(inti=0;i<1000000000;i++){sum=sum+i*i;}end=System.currentTimeMillis();System.out.println("Elapsedtime:"+(end-start));}}24例:記錄程序執(zhí)行的時間publicclassElapse例:復(fù)制數(shù)組publicclassArrayCopyDemo{inta[]={65,66,67,68,69,70,71};intb[]={77,77,77,77,77,77,77,77,77,77};intc[]=newint[20];publicvoidcop(){print(a);System.arraycopy(a,0,c,0,a.length);print(c);System.arraycopy(a,0,b,3,a.length);print(b);System.arraycopy(a,0,a,1,a.length-1);print(a);System.arraycopy(b,1,b,0,b.length-1);print(b);}

voidprint(inta[]){

for(inti=0;i<a.length;i++)System.out.print(a[i]+"");System.out.println();}

public

static

voidmain(String[]args){ArrayCopyDemopp=

newArrayCopyDemo();pp.cop();}}25例:復(fù)制數(shù)組publicclassArrayCopyDe訪問JVM的環(huán)境屬性1java.versionJRE的版本java.vendorJRE的廠商java.vendor.urlJRE廠商的URLjava.homeJava的安裝目錄java.vm.specification.versionJVM規(guī)范的版本java.vm.specification.vendorJVM規(guī)范的廠商JVM規(guī)范的名稱java.vm.versionJVM的實現(xiàn)版本java.vm.vendorJVM的實現(xiàn)廠商JVM的實現(xiàn)名稱26訪問JVM的環(huán)境屬性1java.versionJRE的版本j訪問JVM的環(huán)境屬性2publicclassPropsDemo{publicstaticvoidmain(String[]args){System.out.println(System.getProperty("java.version"));System.out.println(System.getProperty("java.vendor"));System.out.println(System.getProperty("java.vendor.url"));System.out.println(System.getProperty("java.home"));System.out.println(System.getProperty("user.dir"));System.setProperty("java.class.path","d:\\java\\lib");System.out.println(System.getProperty("java.class.path"));}}27訪問JVM的環(huán)境屬性2publicclassPropsD4.4RuntimeRuntime類封裝了運行時環(huán)境。用戶一般不實例化一個Runtime對象。但是可以通過調(diào)用靜態(tài)方法Runtime.getRuntime()而獲得對當(dāng)前Runtime對象的引用。一旦獲得了對當(dāng)前對象的引用,就可以調(diào)用幾個控制Java虛擬機的狀態(tài)和行為的方法。284.4RuntimeRuntime類封裝了運行時環(huán)境。28Runtime常用的方法Processexec(StringprogName)throwsIOException將由progName指定的程序作為獨立的進程來執(zhí)行。返回描述新進程的類型Process的對象voidexit(intexitCode)暫停執(zhí)行并且向父進程返回exitCode的值longfreeMemory()返回Java運行系統(tǒng)可以利用的空閑內(nèi)存的大概字節(jié)數(shù)voidgc()初始化垃圾回收站staticRuntimegetRuntime()返回當(dāng)前的Runtime對象voidhalt(intcode)立即終止Java虛擬機,voidloadLibrary(StringlibraryName)載入庫名為libraryName的動態(tài)庫longtotalMemory()返回程序可以利用的內(nèi)存的總字節(jié)數(shù)29Runtime常用的方法Processexec(Stri使用Runtime執(zhí)行其他程序publicclassExecDemo{publicstaticvoidmain(String[]args){Runtimer=Runtime.getRuntime();Processp=null;try{p=r.exec("notepad");//程序暫停1秒鐘

Thread.sleep(1000);//關(guān)閉外部程序

p.destroy();}catch(Exceptione){System.out.println("Errorexecutingnotepad.");}}}30使用Runtime執(zhí)行其他程序publicclassEx4.5MathMath類在java.lang包中。Math類包含許多用來進行科學(xué)計算的類方法,這些方法可以直接通過類名調(diào)用。Math類還有兩個靜態(tài)常量,它們分別是:E2.7182828284590452354PI3.14159265358979323846。314.5MathMath類在java.lang包中。31方法描述publicstaticdoublesin(doublea)正弦函數(shù)publicstaticdoublecos(doublea)余弦函數(shù)publicstaticdoubletan(doublea)正切函數(shù)publicstaticdoubletoRadians(doublea)將度轉(zhuǎn)換為弧度publicstaticdoubletoDegrees(doublea)將弧度轉(zhuǎn)換為度publicstaticdoubleexp(doublea)eapublicstaticdoublelog(doublea)自然對數(shù)publicstaticdoublesqrt(doublea)開平方publicstaticdoubleceil(doublea)獲取不小于a的最小double型整數(shù)publicstaticdoublefloor(doublea)獲取不大于a的最大double型整數(shù)publicstaticdoublerint(doublea)獲取最接近a的double型整數(shù)publicstaticdoublepow(doublea,doubleb)abpublicstaticintround(floata)將flaot型a四舍五入取整為int型publicstaticdoublerandom(doublea)獲取界于0.0~1.0之間的double型隨機數(shù)publicstaticintabs(inta)取a的絕對值publicstaticintmax(inta,intb)獲取a與b中較大值publicstaticintmin(inta,intb)獲取a與b中較小值32方法描述publicstaticdoublesin(d4.6BigInteger類1java.math包中的BigInteger類提供任意精度的整數(shù)運算??梢允褂脴?gòu)造方法:

publicBigInteger(Stringval)構(gòu)造一個十進制的BigInteger對象。2以下是BigInteger類的常用類方法:*publicBigIntegeradd(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的和。*publicBigIntegersubtract(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的差。*publicBigIntegermultiply(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的積。*publicBigIntegerdivide(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的商。*publicBigIntegerremainder(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的余。*publicintcompareTo(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)的比較結(jié)果,返回值是1、-1或0,分別表示當(dāng)前大整數(shù)對象大于、小于或等于參數(shù)指定的大整數(shù)。*publicBigIntegerabs()返回當(dāng)前大整數(shù)對象的絕對值。*publicBigIntegerpow(inta)返回當(dāng)前大整數(shù)對象的a次冪。*publicStringtoString()返回當(dāng)前大整數(shù)對象十進制的字符串表示。*publicStringtoString(intp)返回當(dāng)前大整數(shù)對象p進制的字符串表示。334.6BigInteger類1java.math包中的B4.7日期時間實用工具類Date封裝當(dāng)前的日期和時間,也可以封裝一個指定的日期Calendar,GregorianCalendar一個日歷可以獲取時間分量日期計算344.7日期時間實用工具類Date344.7.1DateDate類在java.util包中。使用Date類的無參數(shù)構(gòu)造方法創(chuàng)建的對象可以獲取本地當(dāng)前時間。構(gòu)造函數(shù)Date(),從當(dāng)前時間構(gòu)造對象Date(longmillisec),接收一個參數(shù),該參數(shù)等于從1970年1月1日午夜起至今的毫秒數(shù)的大小354.7.1DateDate類在java.util包中。使用Date的主要方法方法描述booleanafter(Datedate)如果調(diào)用對象所包含的日期遲于由date指定的日期,則返回true;否則返回falsebooleanbefore(Datedate)如果調(diào)用對象所包含的日期早于由date指定的日期,則返回true;否則返回falseObjectclone()復(fù)制調(diào)用對象intcompareTo(Datedate)將調(diào)用對象的值與date的值進行比較。longgetTime()返回自1970年1月1日起至今的毫秒數(shù)值voidsetTime(longtime)按time的指定,設(shè)置時間和日期,表示自1970年1月1日午夜至今的以毫秒為單位的時間值StringtoString()將調(diào)用Date對象轉(zhuǎn)換成字符串并且返回結(jié)果36Date的主要方法方法描述booleanafter(DatDate的例子Dated1=newDate();Dated2=newDate(1140203030304L);System.out.println(d1);System.out.println(d2);

if(d2.after(d1))System.out.println("d2晚于d1");System.out.println(pareTo(d1));//改變的d2的值為d1

d2.setTime(d1.getTime());System.out.println(d2);37Date的例子Dated1=newD4.7.2Calendar抽象Calendar類提供了一組方法,這些方法允許將以毫秒為單位的時間轉(zhuǎn)換為一組有用的分量。一些可以提供信息的類型是:年,月,日,小時,分和秒。定義的一些常量,表示時間分量。AMFRIDAYPMAM_PMHOURSATURDAYAPRILHOUR_OF_DAYSECONDAUGUSTJANUARYSEPTEMBERDATEJULYSUNDAYDAY_OF_MONTHJUNETHURSDAYDAY_OF_WEEKMARCHTUESDAYDAY_OF_YEARMILLISECONDWEDNESDAYDECEMBERMINUTEWEEK_OF_MONTH384.7.2Calendar抽象Calendar類提供了一Calendar的主要方法方法描述abstractvoidadd(int

field,int

amount)將amount加到由field指定的時間或日期分量。例如Calendar.HOURfinalvoidclear()對調(diào)用對象的所有時間分量置0finalintget(intfield)返回調(diào)用對象的一個分量的值。該分量由field指定。Calendar.YEAR,staticCalendargetInstance()對默認(rèn)的地區(qū)和時區(qū),返回一個Calendar對象finalDategetTime()返回一個與調(diào)用對象的時間相等的Date對象finalvoidset(intfield,intval)在調(diào)用對象中,將由field指定的日期和時間分量賦給由val指定的值。finalvoidset(intyear,intmonth,intday,inthours,intmin,intsec)設(shè)置調(diào)用對象的各種日期和時間分量finalvoidsetTime(Dated)設(shè)置調(diào)用對象的各種日期和時間分量。該信息從Date對象d中獲得39Calendar的主要方法方法描述abstractvoidCalendar類在java.util包中。使用Calendar類的static方法getInstance()可以初始化一個日歷對象例1:Calendarcalendar=Calendar.getInstance();例2:常量使用Calendarc=Calendar.getInstance();intc.get(Calendar.YEAR)intc.get(Calendar.MONTH)(1月為0)intc.get(Calendar.DATE)intc.get(Calendar.HOUR)intc.get(Calendar.MINUTE)intc.get(Calendar.SECOND)Datec.getTime()40Calendar類在java.util包中。使用Calend例:importjava.util.*;publicclasscalendar{ publicstaticvoidmain(String[]args){ Datenow=Calendar.getInstance().getTime(); Calendarc=Calendar.getInstance(); System.out.println(now); System.out.println(c); System.out.println(c.DATE); System.out.println(c.AM); System.out.println(c.getTimeZone());System.out.println(c.getAvailableLocales()); }}41例:414.7.3GregorianCalendar是Calendar的子類GregorianCalendar是Calendar的一個實現(xiàn)大家所熟悉的標(biāo)準(zhǔn)日歷(現(xiàn)在通用的陽歷)的具體工具GregorianCalendar定義了兩個域:AD和BC。它們代表由公歷定義的兩個紀(jì)元。424.7.3GregorianCalendar是CalendGregorianCalendar的構(gòu)造函數(shù)GregorianCalendar(intyear,intmonth,intdate)GregorianCalendar(intyear,intmonth,intdate,inthours,intminutes)GregorianCalendar(intyear,intmonth,intdate,inthours,intminutes,intseconds)三種形式中,都設(shè)置了日,月和年。這里,year指定了從1900年起的年數(shù)。month指定了月,以0表示一月。月中的日由date指定,從1開始。第一種形式以午夜設(shè)置時間。第二種形式以小時和分鐘設(shè)置時間,第三種形式增加了秒。43GregorianCalendar的構(gòu)造函數(shù)Gregoria日歷的使用Calendarc=Calendar.getInstance();c.setFirstDayOfWeek(Calendar.MONDAY);//設(shè)置日期和時間.c.set(2006,11,30);c.set(Calendar.HOUR,10);c.set(Calendar.MINUTE,29);c.set(Calendar.SECOND,22);c.add(Calendar.DATE,10);c.add(Calendar.HOUR_OF_DAY,10);44日歷的使用Calendarc=Calendar.get第4章Java標(biāo)準(zhǔn)類庫45第4章Java標(biāo)準(zhǔn)類庫14.1語言基礎(chǔ)類庫-Object類類java.lang.Object處于java開發(fā)環(huán)境的類層次的根部,其它所有的類都是直接或間接地繼承了此類。該類定義了一些最基本的狀態(tài)和行為。

Java中所有的其他類都是從Object類派生。構(gòu)造方法:Object()464.1語言基礎(chǔ)類庫-Object類類java.lang.Oinstanceof運算符instanceof運算符是一個常用的運算符,該運算符是雙目運算符,左面的操作元是一個對象,右面是一個類。當(dāng)左面的對象是右面的類創(chuàng)建的對象時,該運算符運算的結(jié)果是true,否則是false。例如:if(b1instanceofButton)doDealB1();其中b1是對象,Button是一個類名。47instanceof運算符instanceof運算符是一【例】getClass和Instanceof方法的使用//ClassAndInstance.javaclassSubClass{}classSuperClassextendsSubClass{}publicclassClassAndInstance{publicstaticvoidmain(String[]args){test(newSubClass());test(newSuperClass());}staticvoidtest(Objectx){System.out.println("Testingxoftype"+x.getClass());System.out.println("xinstanceofSubClass"+(xinstanceofSubClass));System.out.println("xinstanceofSuperClass"+(xinstanceofSuperClass));}}48【例】getClass和Instanceof方法的使用4基本類型的包裝類:每一種基本類型都有一個相應(yīng)的包裝類,這些類定義在java.lang包中: byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean基本類型名相應(yīng)的包裝類類名4.2數(shù)據(jù)類型類49基本類型的包裝類:基本類型名相應(yīng)的包裝類類名4.2數(shù)據(jù)類NumberDouble,F(xiàn)loatByte,Short,Integer,Long數(shù)字和字符串的轉(zhuǎn)換CharacterBoolean50Number64.2.1Number類抽象類Number定義了一個包裝數(shù)字類型:字節(jié)型(Byte),短整型(Short),整型(Integer),長整型(Long),浮點型(Float)和雙精度型(Double)的超類。定義了從包裝器返回基本類型的方法doubledoubleValue(),floatfloatValue()bytebyteValue(),,intintValue(),longlongValue(),shortshortValue()514.2.1Number類抽象類Number定義了一個包裝4.2.1Double和Float雙精度(Double)和浮點(Float)分別是對類型double和類型float的浮點值的包裝器。構(gòu)造方法Float(doublevalue),Float(floatvalue),Float(Strings)Double(doublevalue)Double(Strings)524.2.1Double和Float雙精度(Double)和Float和Double中定義的常量MAX_VALUE最大正值MIN_VALUE最小正值NaN非數(shù)字POSITIVE_INFINITY正無窮NEGATIVE_INFINITY負(fù)無窮53Float和Double中定義的常量MAX_VALUE最大Float和Double中定義的主要方法intcompareTo(),比較兩個對象staticfloatparseFloat(Strings)把字符串轉(zhuǎn)換成floatstaticFloatvalueOf(Strings)把字符串轉(zhuǎn)換成FloatstaticfloatparseDouble(Strings)把字符串轉(zhuǎn)換成doublestaticDoublevalueOf(Strings)把字符串轉(zhuǎn)換成Double54Float和Double中定義的主要方法intcomparDouble,Float例子//提取簡單類型值f=F.floatValue();

d=D.doubleValue();

System.out.println(f);System.out.println(d);//比較System.out.println(D.equals(F));floatf=3.1415f;doubled=3.14159267;FloatF=newFloat(f);DoubleD=newDouble(d);//轉(zhuǎn)化為字符串System.out.println(F.toString());System.out.println(D.toString());

55Double,Float例子//提取簡單類型值float4.2.3Byte,Short,Integer,Long

Byte,Short,Integer,和Long類分別是字節(jié)型(byte),短整型(short),整型(int)和長整型(long)整數(shù)類型的包裝器構(gòu)造函數(shù)Byte(bytevalue),Byte(Stringstr)Short(shortvalue),Short(Stringstr)Integer(intvalue),Integer(Stringstr)Long(longvalue),Long(Stringstr)564.2.3Byte,Short,Integer,Lo定義的主要方法parseByte,parseInt,parseShort,parseLong,把字符串轉(zhuǎn)化成數(shù)字類型valueOf(),把字符串轉(zhuǎn)化成數(shù)字類型包裝器把數(shù)字轉(zhuǎn)化成字符串staticStringtoBinaryString(intvalue)staticStringtoHexString(intvalue)staticStringtoOctalString(intvalue)staticStringtoString(intvalue)staticStringtoString(intvalue,intradix)57定義的主要方法parseByte,parseInt,pa4.2.4數(shù)字和字符串的轉(zhuǎn)換字符串向數(shù)字的轉(zhuǎn)換parseByte(),parseShort(),parseInt()和parseLong()數(shù)字向字符串的轉(zhuǎn)換staticStringtoBinaryString(intvalue)staticStringtoHexString(intvalue)staticStringtoOctalString(intvalue)staticStringtoString(intvalue)staticStringtoString(intvalue,intradix)584.2.4數(shù)字和字符串的轉(zhuǎn)換字符串向數(shù)字的轉(zhuǎn)換14數(shù)字字符串轉(zhuǎn)換示例1Strings1="12";Strings2="34";Strings=null;inti1=0,i2=0,sum=0;//把字符串轉(zhuǎn)換成整數(shù)

i1=Integer.parseInt(s1);i2=newInteger(s2).intValue();sum=i1+i2;//把整數(shù)轉(zhuǎn)換成字符串

s=Integer.toString(sum);System.out.println(s);59數(shù)字字符串轉(zhuǎn)換示例1Strings1=數(shù)字字符串轉(zhuǎn)換示例2inti=-34567;Strings=null;//轉(zhuǎn)換成二進制字符串System.out.println("2進制字串:"+Integer.toBinaryString(i));//轉(zhuǎn)換成8進制字符串System.out.println("8進制字符串:"+Integer.toOctalString(i));//轉(zhuǎn)換成16進制字符串System.out.println("16進制字符串:"+Integer.toHexString(i));//轉(zhuǎn)換成帶符號表示的8進制字符串s=Integer.toString(i,8);System.out.println("帶符號8進制字符串:"+s);//從8進制字符串轉(zhuǎn)化成Integer對象IntegerI=Integer.valueOf(s,8);System.out.println("Integer對象中的值:"+I.intValue());60數(shù)字字符串轉(zhuǎn)換示例2inti=-34567;s=4.2.5CharacterCharacter是圍繞字符型(char)的一個簡單的包裝器。Character的構(gòu)造函數(shù)如下:Character(charch)Character類定義了很多常數(shù)和靜態(tài)方法。isDigit(charch),isLetter(charch)isLowerCase(charch),toUpperCase(charch)614.2.5CharacterCharacter是圍繞字符型4.2.6BooleanBoolean是一個圍繞布爾(boolean)值的非常細(xì)小的包裝器,主要用在通過引用傳遞布爾(boolean)變量的場合。構(gòu)造函數(shù)Boolean(booleanboolValue)Boolean(StringboolString)Strings="true";booleanb=true;if(b==newBoolean(s).booleanValue()){System.out.println("兩個布爾變量相等");}System.out.println(Boolean.valueOf(s).hashCode());624.2.6BooleanBoolean是一個圍繞布爾(bojava.lnag.Object中對hashCode的約定:

在一個應(yīng)用程序執(zhí)行期間,如果一個對象的equals方法做比較所用到的信息沒有被修改的話,則對該對象調(diào)用hashCode方法多次,它必須始終如一地返回同一個整數(shù)。

如果兩個對象根據(jù)equals(Objecto)方法是相等的,則調(diào)用這兩個對象中任一對象的hashCode方法必須產(chǎn)生相同的整數(shù)結(jié)果。

如果兩個對象根據(jù)equals(Objecto)方法是不相等的,則調(diào)用這兩個對象中任一個對象的hashCode方法,不要求產(chǎn)生不同的整數(shù)結(jié)果。但如果能不同,則可能提高散列表的性能。63java.lnag.Object中對hashCode的約定:4.3SystemSystem類保存靜態(tài)方法和變量的集合。標(biāo)準(zhǔn)的輸入,輸出和Java運行時錯誤輸出存儲在變量in,out和err中。定義的主要方法見下表644.3SystemSystem類保存靜態(tài)方法和變量的集合。System的主要方法1staticvoidarraycopy(Objectsource,intStart,Objecttarget,intStart,intsize)復(fù)制數(shù)組。staticlongcurrentTimeMillis()返回自1970年1月1日午夜至今的時間,時間單位為毫秒。staticvoidexit(intexitCode)返回exitCode值給父進程staticvoidgc()建議JVM進行垃圾回收staticPropertiesgetProperties()返回與Java運行系統(tǒng)有關(guān)的屬性類staticStringgetProperty(Stringkey)返回與key有關(guān)的屬性。65System的主要方法1staticvoidarraycSystem的主要方法2staticStringgetProperty(Stringkey,Stringdefault)返回一個與key有關(guān)的屬性。如果期望的屬性沒有被發(fā)現(xiàn),則返回defaultstaticSecurityManagergetSecurityManager()返回當(dāng)前的安全管理程序,如果沒有安裝安全管理程序,則返回一個空對象(nullobject)staticvoidload(StringlibraryFileName)載入其文件由libraryFileName指定的動態(tài)庫,必須指定其完全路徑staticvoidloadLibrary(StringlibraryName)載入其庫名為libraryName的動態(tài)庫staticStringmapLibraryName(Stringlib)對應(yīng)名為lib的庫,返回一個指定平臺的名字staticvoidrunFinalization()啟動調(diào)用不用的但還不是回收站中的對象的finalize()方法。66System的主要方法2staticStringgetPSystem的主要方法3staticvoidsetProperties(PropertiessysProperties)設(shè)置由sysProperties指定的當(dāng)前系統(tǒng)屬性StaticStringsetProperty(Stringkey,Stringvalue)將value值賦給名為key的屬性staticvoidsetSecurityManager(SecurityManagers)設(shè)置由s指定的安全管理程序67System的主要方法3staticvoidsetPro例:記錄程序執(zhí)行的時間publicclassElapsed{publicstaticvoidmain(String[]args){longstart,end,sum=0;System.out.println("aloopfrom0to1,000,000,000");start=System.currentTimeMillis();for(inti=0;i<1000000000;i++){sum=sum+i*i;}end=System.currentTimeMillis();System.out.println("Elapsedtime:"+(end-start));}}68例:記錄程序執(zhí)行的時間publicclassElapse例:復(fù)制數(shù)組publicclassArrayCopyDemo{inta[]={65,66,67,68,69,70,71};intb[]={77,77,77,77,77,77,77,77,77,77};intc[]=newint[20];publicvoidcop(){print(a);System.arraycopy(a,0,c,0,a.length);print(c);System.arraycopy(a,0,b,3,a.length);print(b);System.arraycopy(a,0,a,1,a.length-1);print(a);System.arraycopy(b,1,b,0,b.length-1);print(b);}

voidprint(inta[]){

for(inti=0;i<a.length;i++)System.out.print(a[i]+"");System.out.println();}

public

static

voidmain(String[]args){ArrayCopyDemopp=

newArrayCopyDemo();pp.cop();}}69例:復(fù)制數(shù)組publicclassArrayCopyDe訪問JVM的環(huán)境屬性1java.versionJRE的版本java.vendorJRE的廠商java.vendor.urlJRE廠商的URLjava.homeJava的安裝目錄java.vm.specification.versionJVM規(guī)范的版本java.vm.specification.vendorJVM規(guī)范的廠商JVM規(guī)范的名稱java.vm.versionJVM的實現(xiàn)版本java.vm.vendorJVM的實現(xiàn)廠商JVM的實現(xiàn)名稱70訪問JVM的環(huán)境屬性1java.versionJRE的版本j訪問JVM的環(huán)境屬性2publicclassPropsDemo{publicstaticvoidmain(String[]args){System.out.println(System.getProperty("java.version"));System.out.println(System.getProperty("java.vendor"));System.out.println(System.getProperty("java.vendor.url"));System.out.println(System.getProperty("java.home"));System.out.println(System.getProperty("user.dir"));System.setProperty("java.class.path","d:\\java\\lib");System.out.println(System.getProperty("java.class.path"));}}71訪問JVM的環(huán)境屬性2publicclassPropsD4.4RuntimeRuntime類封裝了運行時環(huán)境。用戶一般不實例化一個Runtime對象。但是可以通過調(diào)用靜態(tài)方法Runtime.getRuntime()而獲得對當(dāng)前Runtime對象的引用。一旦獲得了對當(dāng)前對象的引用,就可以調(diào)用幾個控制Java虛擬機的狀態(tài)和行為的方法。724.4RuntimeRuntime類封裝了運行時環(huán)境。28Runtime常用的方法Processexec(StringprogName)throwsIOException將由progName指定的程序作為獨立的進程來執(zhí)行。返回描述新進程的類型Process的對象voidexit(intexitCode)暫停執(zhí)行并且向父進程返回exitCode的值longfreeMemory()返回Java運行系統(tǒng)可以利用的空閑內(nèi)存的大概字節(jié)數(shù)voidgc()初始化垃圾回收站staticRuntimegetRuntime()返回當(dāng)前的Runtime對象voidhalt(intcode)立即終止Java虛擬機,voidloadLibrary(StringlibraryName)載入庫名為libraryName的動態(tài)庫longtotalMemory()返回程序可以利用的內(nèi)存的總字節(jié)數(shù)73Runtime常用的方法Processexec(Stri使用Runtime執(zhí)行其他程序publicclassExecDemo{publicstaticvoidmain(String[]args){Runtimer=Runtime.getRuntime();Processp=null;try{p=r.exec("notepad");//程序暫停1秒鐘

Thread.sleep(1000);//關(guān)閉外部程序

p.destroy();}catch(Exceptione){System.out.println("Errorexecutingnotepad.");}}}74使用Runtime執(zhí)行其他程序publicclassEx4.5MathMath類在java.lang包中。Math類包含許多用來進行科學(xué)計算的類方法,這些方法可以直接通過類名調(diào)用。Math類還有兩個靜態(tài)常量,它們分別是:E2.7182828284590452354PI3.14159265358979323846。754.5MathMath類在java.lang包中。31方法描述publicstaticdoublesin(doublea)正弦函數(shù)publicstaticdoublecos(doublea)余弦函數(shù)publicstaticdoubletan(doublea)正切函數(shù)publicstaticdoubletoRadians(doublea)將度轉(zhuǎn)換為弧度publicstaticdoubletoDegrees(doublea)將弧度轉(zhuǎn)換為度publicstaticdoubleexp(doublea)eapublicstaticdoublelog(doublea)自然對數(shù)publicstaticdoublesqrt(doublea)開平方publicstaticdoubleceil(doublea)獲取不小于a的最小double型整數(shù)publicstaticdoublefloor(doublea)獲取不大于a的最大double型整數(shù)publicstaticdoublerint(doublea)獲取最接近a的double型整數(shù)publicstaticdoublepow(doublea,doubleb)abpublicstaticintround(floata)將flaot型a四舍五入取整為int型publicstaticdoublerandom(doublea)獲取界于0.0~1.0之間的double型隨機數(shù)publicstaticintabs(inta)取a的絕對值publicstaticintmax(inta,intb)獲取a與b中較大值publicstaticintmin(inta,intb)獲取a與b中較小值76方法描述publicstaticdoublesin(d4.6BigInteger類1java.math包中的BigInteger類提供任意精度的整數(shù)運算??梢允褂脴?gòu)造方法:

publicBigInteger(Stringval)構(gòu)造一個十進制的BigInteger對象。2以下是BigInteger類的常用類方法:*publicBigIntegeradd(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的和。*publicBigIntegersubtract(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的差。*publicBigIntegermultiply(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的積。*publicBigIntegerdivide(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的商。*publicBigIntegerremainder(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)對象的余。*publicintcompareTo(BigIntegerval)返回當(dāng)前大整數(shù)對象與參數(shù)指定的大整數(shù)的比較結(jié)果,返回值是1、-1或0,分別表示當(dāng)前大整數(shù)對象大于、小于或等于參數(shù)指定的大整數(shù)。*publicBigIntegerabs()返回當(dāng)前大整數(shù)對象的絕對值。*publicBigIntegerpow(inta)返回當(dāng)前大整數(shù)對象的a次冪。*publicStringtoString()返回當(dāng)前大整數(shù)對象十進制的字符串表示。*publicStringtoString(intp)返回當(dāng)前大整數(shù)對象p進制的字符串表示。774.6BigInteger類1java.math包中的B4.7日期時間實用工具類Date封裝當(dāng)前的日期和時間,也可以封裝一個指定的日期Calendar,GregorianCalendar一個日歷可以獲取時間分量日期計算784.7日期時間實用工具類Date344.7.1DateDate類在java.util包中。使用Date類的無參數(shù)構(gòu)造方法創(chuàng)建的對象可以獲取本地當(dāng)前時間。構(gòu)造函數(shù)Date(),從當(dāng)前時間構(gòu)造對象Date(longmillisec),接收一個參數(shù),該參數(shù)等于從1970年1月1日午夜起至今的毫秒數(shù)的大小794.7.1DateDate類在java.util包中。使用Date的主要方法方法描述booleanafter(Datedate)如果調(diào)用對象所包含的日期遲于由date

溫馨提示

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

評論

0/150

提交評論