java課件API是應(yīng)用程序編程接口,全名_第1頁(yè)
java課件API是應(yīng)用程序編程接口,全名_第2頁(yè)
java課件API是應(yīng)用程序編程接口,全名_第3頁(yè)
java課件API是應(yīng)用程序編程接口,全名_第4頁(yè)
java課件API是應(yīng)用程序編程接口,全名_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

,API是應(yīng)用程序編程接口,API全名:applicationprogramminginterface如果想實(shí)現(xiàn)一個(gè)機(jī)器人的功能,有的時(shí)候不需要自己造一個(gè)機(jī)器人可以從生產(chǎn)機(jī)器人的廠家一個(gè),這時(shí)只需要學(xué)會(huì)如何操作這個(gè)機(jī)器人就可以了。,控制機(jī)器人向前向后的按鈕就是說的APIJava面象的:找合適的對(duì)象做合適的事情合適對(duì)象:自己描述類,根據(jù)該類創(chuàng)建對(duì)象.SUN公司描述和很多常用的類,這些類可以直接使用,并創(chuàng)建對(duì)象JavaAPI就是sun公司提供給使用的類,這些類將底層的實(shí)現(xiàn)封裝了起來,我對(duì)字符串進(jìn)行操作通常使用String類,相關(guān)的還有StringBuffer6:IO流Java定義了一些類對(duì)數(shù)據(jù)傳輸進(jìn)行了封裝(輸入輸出流、File文件對(duì)象)ObjectString返回對(duì)象的描述信息String返回對(duì)象的描述信息java.lang.Object@c17164 publicpublicStringtoString()}//)publicbooleanequals(Objectpublicbooleanequals(Objectobj)return(this==}//唯一的。publicnativeinthashCode();唯一的。publicnativeinthashCode();NativeMethod,NativeMethodjavajavaNativeMethodjavajava語(yǔ)言實(shí)現(xiàn),比如C。4:Class1:自定義toStringtoString()方法publicpublicStringtoString()return@,name:"++"age:"+}類創(chuàng)建的對(duì)象,可以認(rèn)為當(dāng)名字和相同就為同一個(gè),需要重寫Object類的equals方法.形參中是Object類,使用了多態(tài)的機(jī)制。但是需要使用到子類()的特有的成員(和)需要強(qiáng)轉(zhuǎn)為了避免強(qiáng)轉(zhuǎn)失敗使用instanceo關(guān)publicpublicbooleanequals(Objectobj)if(!(objinstanceofreturnp=().equals()&&this.age==}Java對(duì)于hashCode方法有明確的通用約定。關(guān)于hashCode方法的約定是,每個(gè)覆蓋了equals方法的類中,也必須覆蓋hashCode方法。如果不這樣就會(huì)Object.hashCode的通用約定。并且,如果兩個(gè)對(duì)象equals返回true,那么著兩個(gè)對(duì)象的hashCode()值必須一致。否則其他依賴于這些約定的類(HashMap和HashSet)publicpublicinthashCode().hashCode()+this.age}publicpublic privateStringname;privateintage;privateStringgender; ()} (Stringname,intage,Stringgender)=name;this.age=age;this.gender=}publicStringgetName()return}publicvoidsetName(Stringname)=}publicintgetAge()return}publicvoidsetAge(intage)this.age=}publicStringgetGender()return}publicvoidsetGender(Stringgender)this.gender=}publicinthashCode().hashCode()+this.age*}publicbooleanequals(Objectobj)ifif(!(objreturnp= ).equals()&&this.age==}publicStringtoString()return @,name:"++"age:"+}}publicstaticpublicstaticvoidmain(String[]{Objectobj=newObject();Objectobj2=newObject();obj2=obj;System.out.println(obj);System.out.println(obj.toString());System.out.println(obj.equals(obj2));print(obj);p1=p2=("jack",23("jack",23System.out.println(p1.toString() @name:System.out.println(p1.equals(p2)); //trueSystem.out.println(p1.hashCode());System.out.println(p2.hashCode()}3.1.字符串“abc”“你好歡迎來到傳智播客上網(wǎng)發(fā)帖 聊天的數(shù)據(jù)由于這些非常常見所以就進(jìn)行了對(duì)象的封裝.描述定義了一些Stringstr= str=1:Stringstr=” ogz 2:new關(guān)鍵字法Stringstr2=new o Strings1Strings1=解讀該行代碼:s1是什么?學(xué)過面象就不難理解了。s1是一個(gè)類類型變量,StringStrings1=s1= System.out.println(s1);o答案是不能的,第一條語(yǔ)句創(chuàng)建了一個(gè)內(nèi)容為”abc”的String對(duì)象,并將其賦值給s1,第二條語(yǔ)句創(chuàng)建了內(nèi)容為”o”的新String對(duì)象并將其賦值給s1.賦值后的第一個(gè)String對(duì)象仍然存在,但是不能在它,因?yàn)閟1變量指向了新的對(duì)象。StringString的常量池在方法區(qū)的常量池區(qū)域Strings1="abc";Strings2="abc";System.out.println(s1==s2)分析:如果單純從變量考慮,那么s1 變量指向了一個(gè)對(duì)象,s2變量也指向Strings1="abc";Strings2="abc";System.out.println(s1==s2)Strings1="abc"時(shí),會(huì)去常量池中檢查,有沒有該字符串,發(fā)現(xiàn)沒有,就將該字符串存入常量池,并將(內(nèi)存地址)賦給s1變量。執(zhí)行到Strings2="abc";s2變量初始化時(shí)時(shí),會(huì)去常量池檢查”abc”是否存在,已經(jīng)存在,直接將(內(nèi)存地址)賦給s2。所以s1變量和s2變量持有的是一樣的。隨著程序的運(yùn)行,String字面值(String對(duì)象中保存的字符串值)占用大量的程序Stringjava更高效的使用內(nèi)會(huì)檢查池內(nèi)是否已經(jīng)存在相同的String字面值。如果找到,則將新的字面值的指向StringString(String只是具有一個(gè)額外的。由于會(huì)有多個(gè)指向同一個(gè)String,假如其中任何一個(gè)能夠修改了String的值,那么會(huì)一些問題。這就是為什么String對(duì)象為不可變的原因之一。如果有人重寫了String類的功能,可能會(huì)導(dǎo)致String常量池出現(xiàn)問題,這就是String類被標(biāo)識(shí)finalString方法。Strings1="abc";這種情況,"abc"放入了常量池中,s1變量它Strings2=newString("abc");因?yàn)槭褂昧薾ew關(guān)鍵字,所以java在堆內(nèi)存2StringAPIjava.lang.Objectfinal的,說明不能有子類。方法不能被重寫。Strings2=newString(“abc”);為什么能夠這么寫呢?查看String類的構(gòu)造方法,原來原來是String類的構(gòu)造方法里邊有對(duì)應(yīng)的接收字1:Strings=newString();Strings1="";是一回事Strings1=Strings1=Strings2=newString("abc");System.out.println(s1==s2);//flase2:StringObjectequals方法(比較內(nèi)存地址),用于比較內(nèi)容是否相獲intlength();charcharAt(intintindexOf(intch);intindexOf(intch,intfromIndexch在字符串中出現(xiàn)的位置intlastIndexOf(intintindexOf(Stringstr);str在字符串中第一次出現(xiàn)的位置intindexOf(Stringstr,intfromIndex)fromIndex指定位置開str在字符中出現(xiàn)的位置Stringconcat(Strings)Stringstr=" 判booleancontains(StringindexOf(StringindexOf(StringbooleanbooleanstartWith(Stringstr);booleanendsWith(Stringbooleanequals(StringbooleanequalsIgnoreCase(String轉(zhuǎn)String(char[ch);String(char[],intoffsetintcount);1:offset字符數(shù)組開始staticStringcopyValueOf(char[]chartoCharArray();String(byte[]String(byte[bytes,intoffset,intcount);byte[]staticStringvalueOf(intx);staticStringvalueOf(doubled);注意:3+String.valueOf(3替StringStringreplace(charoldchar,char切StringString[]split(String子StringStringsubString(int常StringsubString(intbegin,intendStringtoUpperCase();StringStringintcompareTo(String如"a".compareTo("b");-"aa".compareTo("bb");-"aa".compareTo("ab");-"aa".compareTo("abcd");-方compareTo方法,實(shí)現(xiàn)自己的比較功能。 a的字典順序在b之前,97-98=-1 找到最小的字符不同的索引位置即0,”abc”.charAt(0)-”cde”.charAt(0)=‘a(chǎn)’-’c’=-2”abc”.charAt(0)-”edfr”.charAt(0)=‘a(chǎn)’-’e’=-publicintcompareTo(String按字典順序比較兩個(gè)字符串。該比較基于字符串中各個(gè)字符的Unicode值。將此String對(duì)象表示的字符序列與參數(shù)字符串所表示的字符序列進(jìn)行比較。如果按字典順序此String對(duì)象在參數(shù)字符串之前,則比較結(jié)果為一個(gè)負(fù)整數(shù)。如果按字典順序此則結(jié)果為0;compareToequals(Objecttrue0大于0練1、獲取上傳文件的名稱例如 4“fedca”‘classclassDemo15publicstaticvoidmain(String[]args){Stringstr="gz";Stringstr2=str+" "+"good"+"study";}}可以假設(shè):String類有一個(gè)append方產(chǎn)生一個(gè)新的String對(duì)象,用來包含" 和str相連后的字符串,然后該對(duì)象與"good"相連,生成一個(gè)新的String對(duì)象,最后新對(duì)象與"study"相連生成另外一個(gè)新的String對(duì)象,就是gz goodstudy字符串。那么之前的"gz"" ""good""study"對(duì)象呢?就會(huì)產(chǎn)生一大堆需要回收。Javap–c-cJVMjava.lang.StringBuilder類,雖然在源代碼中appendtoString(方法生成字符串。classclassDemo15publicstaticvoidmain(String[]args){Stringa="";for(inti=0;i<1000;i++){a+=}System.out.println("a="+}}javapcDemo15goto5StringBuilder但是該StringBuilder是在循環(huán)創(chuàng)建的。就是說每循環(huán)一次就創(chuàng)建了一個(gè)StringBuilder對(duì)象。2:classclassDemo15publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilder();for(inti=0;i<1000;i++){}}}}使用javap Demo15反編StringBuilderappend()方StringBuilder要比String高效很多。StringString對(duì)象要做大量處理,那么將要導(dǎo)致publicstaticvoidpublicstaticvoidmain(String[]args)Stringstr="abc";str.concat("def")將指定字符串連接到此字符串的結(jié)尾。System.out.println(str);//是輸出"abcdef"嗎?}結(jié)果是abc為什么,因?yàn)镾tring是不可變的,調(diào)用了connect的”abcdef”String對(duì)象但是沒有賦給變量就是沒有任何指向它那么該”abcdef”classclassDemo15publicstaticvoidmain(String[]args)Stringstr=strstr.concat("def")}}classDemo15publicstaticvoidmain(String[]args){StringBuildersb=classDemo15publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilder("abc");System.out.println(sb.toString());//abcdef}}因?yàn)镾tringBuilder是一個(gè)容器,初始化添加了abc然后又把def添加進(jìn)了容器中。所以操作的始終是StringBuilder這個(gè)容器。本例中的容器就是sb,該sb持有的對(duì)象new了一次,所以不會(huì)有多余的對(duì)象。classDemo15classDemo15publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilderr();StringBuildersb2=//此對(duì)象的一 System.out.println(sb==sb2);//true可以簡(jiǎn)化為}}StringBuilderStringBuilderappend(StringBuilderinsert(intindex數(shù)據(jù))將數(shù)據(jù)到指定刪StringBuilderStringBuilderdelete(intstartintendstartStringBuilderdeleteCharAt(intindex)delete(0,sb.length);//”abcd”獲charcharAt(intindex)intcharcharAt(intindex)intindexOf(Stringstr);intlastIndexOf(Stringstr);intlength();StringSubString(intstrat,int修StringBuilderStringBuilderreplace(intstart,intend,StringvoidsetCharAt(intindex,char反StringBuilderStringBuilder將緩沖區(qū)中指定數(shù)據(jù)存到指定字符數(shù)組getChars(intgetChars(intsrcBegin,intsrcEnd,char[]dst,intsrcBegin dstBegin2StringBuffer,StringBuilderSystem類包含一些有用的類字段和方法。它不能被實(shí)例化197011日午夜之間的exit(intJava虛擬機(jī)。status退出狀態(tài)。0PropertiesPropertiesHashtable的子類Propertieslist方法將系統(tǒng)屬性輸出到指定的輸出流setProperty(Stringkey,StringgetProperty(Stringgetenv(StringimportimportclassclassDemo8publicstaticvoidmain(String[]args)PropertiespsSystem.getPropertiesStringos_name=System.getProperty("");System.err.println(os_name);//WindowsXPif("WindowsXP".equals(os_name)}else }//獲取path環(huán)境變量值}}RuntimeJava應(yīng)用程序在運(yùn)行時(shí)都有一RuntimegetRuntime方調(diào)用回收器程序,但是調(diào)用該方法的時(shí)候不會(huì)馬上就運(yùn)行GC。Processexec(Stringcommand)classclass{{publicstaticvoidmain(String[]args)throws{Runtimerun=Processnotepad=run.exec("notepadDemo8.java"); =run.exec("C:\\ProgramFiles\\Tencent\\\\Bin\\destroy()}}DatedateDatedate=newSystem.out.println(date);//ThuSep1319:27:32CST格式不是想要的,想要輸出如下格式20120913072732秒SimpleDateFormat importimportimportimportclassDemo10publicstaticvoidmain(String[]args){Datedate=newDate();System.out.println(date);//ThuSep1319:27:32CST日}}CalendarcalendarCalendarcalendar=intyear=intmonth=calendar.get(Calendar.MONTH)+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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)論