java基礎(chǔ)-考試課外練_第1頁
java基礎(chǔ)-考試課外練_第2頁
java基礎(chǔ)-考試課外練_第3頁
java基礎(chǔ)-考試課外練_第4頁
java基礎(chǔ)-考試課外練_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余25頁可下載查看

下載本文檔

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

文檔簡介

A B C D解析看JavaAPIdocs吧http /v/7/oc/pi/i()A繼承自Throwable BSerialable CD不記得,反正不正確解析:Javajava.lang.Throwable,java.lang.Error和java.lang.Exception繼承Throwable,RuntimeException和其它的Exception等繼承Exception,具體的RuntimeException繼承RuntimeException。擴(kuò)展:錯(cuò)誤和異常的區(qū)別(Errorvsjava.lang.Error:Throwable的子類,用于標(biāo)記嚴(yán)重錯(cuò)誤。合理的應(yīng)用程序不應(yīng)該去try/catch這種錯(cuò)誤。絕大多數(shù)的錯(cuò)誤都是的,就根本不該出現(xiàn)的。java.lang.Exception:Throwable的子類,用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運(yùn)行條件,而非嚴(yán)重錯(cuò)誤,并且鼓勵(lì)用戶程序去catch它。而所有其他的Exception類都是檢查了的異常(checkedexceptions).checkedexceptions通常是從一個(gè)可以恢復(fù)的程序中拋出來的,并且最好能夠從這種異FileNotFoundExceptionParseException生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過。uncheckedexceptions:通常是如果一切正常的話本不該發(fā)生的異常,但是的確發(fā)生了。發(fā)生在運(yùn)行期,具有不確定性,主要是由于程序的邏輯問題所引起的。比如ArrayIndexOutOfBoundException,ClassCastException等。從語言本身的角度講,程序不該去catch這類異常雖然能夠從諸如RuntimeException這樣的異catch并恢復(fù),但是并不鼓勵(lì)終端程序員這么做,因?yàn)橥耆珱]要必要。因?yàn)檫@類錯(cuò)誤本身就是bug,應(yīng)該被修復(fù),出現(xiàn)此類錯(cuò)誤時(shí)程序就應(yīng)該立即停止執(zhí)行。因此,面對(duì)Errors和uncheckedexceptions應(yīng)該讓程序自動(dòng)終止執(zhí)行,程序員不該做諸如try/catch這樣的事情,而是應(yīng)RuntimeExceptionRuntimeException,那么一定是程序員的(IOException等等)checked異常一般是外部錯(cuò)誤,例如試圖從文件尾后數(shù)據(jù)等,這并不是程序本身的錯(cuò)誤,而是在應(yīng)用環(huán)境中出現(xiàn)的外部錯(cuò)誤。Stringstr1="Stringstr2="he"+newString("llo");System.out.println(str1==str2);str2llo樣。如果是Stringstr2=str1,那么就是true了。class答案StringanewString[10];則:a[0]~a[9]=nulla.length=10intanew則:a[0]~a[9]a.length=publicstaticvoidmain(Stringargs[]){Threadt=newThread(){publicvoidrun(){}}staticvoidpong(){}Apong BpongCpong和pong都有可能 D都不答案解析:這里考的是Threadstartrun()方法的區(qū)別了。start()用來啟動(dòng)一個(gè)線程,當(dāng)調(diào)用start方法后,系統(tǒng)才會(huì)開啟一個(gè)新的線程,進(jìn)而調(diào)用run()方法來執(zhí)行任務(wù),而單獨(dú)的調(diào)用run()就跟調(diào)用普通方法是一樣的,已經(jīng)失去線程的特性了。因此在啟動(dòng)一個(gè)線程的時(shí)候一定要使用start()而不是run()。 B C D解答:IMS(InformationManagementSystem)IBMGC?()JVM最后一個(gè)非守護(hù)線程結(jié)束時(shí),守護(hù)線程隨著JVM一同結(jié)束工作。守護(hù)線程最典型的應(yīng)用就是GC(回收器volatile()載到線程工作內(nèi)存的值是的值,而非cache中。但多個(gè)線程對(duì)volatile12在進(jìn)行read,load操作中,發(fā)現(xiàn)主內(nèi)存中count的值都是5,那么都會(huì)加載這個(gè)的值,程1堆count進(jìn)write到主內(nèi)存中,主內(nèi)存中的count6;2進(jìn)行read,load操作,在進(jìn)行運(yùn)算之后,也會(huì)更新主內(nèi)存count的變量值為6;導(dǎo)致兩個(gè)線程及時(shí)用volatile關(guān)鍵字修改之后,還是會(huì)存在并發(fā)的情況。ALinkedList SetCHashSet繼承 DWeakMap答案i1i()不就<iij||ij()解析:比如Double.NaN或Float.NaN,感謝@BuilderQiu網(wǎng)友A B C D答案doublefloatf下面哪個(gè)流類屬于面向字符的輸入流(ABufferedWriter BFileInputStream CObjectInputStream 的8是InputStream和OutputStream的子類。的時(shí)候?qū)⒆址D(zhuǎn)為二進(jìn)制數(shù)據(jù),這些類都是Reader和Writer的子類。InputStream(輸入)/OutputStream(輸出)為后綴的是字節(jié)流;以Reader(輸入)/Writer(輸出)為后綴的是字符流。A B C 在接口中無法通過行為來修改屬性。有的人會(huì)說了,沒有關(guān)系,可以通過實(shí)現(xiàn)接口的對(duì)象的行為來修改接口中的屬性。這當(dāng)然沒有問題,但是考慮這樣的情況。如果接口A中有一個(gè)public權(quán)限的靜態(tài)變量a。按照J(rèn)ava的語義,我們可以不通過實(shí)現(xiàn)接口的對(duì)象來變量a,通過A.a=xxx;就可以改變接口中的變量a的值了。正如抽象類中是可以這樣做的,那么實(shí)現(xiàn)接口A的所有對(duì)象也都會(huì)自動(dòng)擁有這一改變后的a的值了,也就是說一個(gè)地方改變了a,所有這些對(duì)象中a的值也都跟著變了。這和抽象類有什么區(qū)別呢,來做什么呢?所以接口中不能出現(xiàn)變量,如果有變量,就和接口提供的統(tǒng)一的抽象這種思供一個(gè)統(tǒng)一的屬性。對(duì)一類事物的屬性和行為更次的抽象對(duì)修改關(guān)閉對(duì)擴(kuò)(不同的實(shí)現(xiàn)implements)接口的方法默認(rèn)是 final認(rèn)是publicstaticfinal常量,且必須賦初值。 A是 B否(1)和(2)都會(huì)明確的顯式的調(diào)用構(gòu)造函數(shù);(3)是在內(nèi)存上對(duì)已有對(duì)象的影印,所以不會(huì)調(diào)用構(gòu)造函數(shù);(4)是從文件中還原類的對(duì)象,也不會(huì)調(diào)用構(gòu)造函數(shù)。ArrayListlistnewArrayList(20listA B C D答案解析:這里有點(diǎn)迷惑家都知道默認(rèn)ArrayList的長度是10個(gè),所以如果你要往list20(1.5),但是這里顯示指明了需要多少A、 B C D A)newBufferedWriter(newFileWriter("a.txt"));B)newBufferedReader(newFileInputStream("a.dat"));C)newGZIPOutputStream(newFileOutputStream("a.zip"));D)newObjectInputStream(newFileInputStream("a.dat"));publicclassNULLpublicstaticvoidhaha(){}publicstaticvoidmain(String[]args){}}hahanulljavaString)nullnullnullstatic,使用null調(diào)用對(duì)象肯定會(huì)報(bào)空指針錯(cuò)了。這里和C++很類似。這里感謝@FlorianclassoApublicoA(){}{System.out.println("I'mAclass");}static{System.out.println("staticA");}}publicclassoBextendsoA{publicoB(){System.out.println("}{System.out.println("I'mBclass");}static{System.out.println("staticB");}publicstaticvoidmain(String[]args){newoB();}}staticAstaticBI'mAclassI'mBclass對(duì)象的初始化順序:(1)類加載之后,按從上到下(從父類到子類)staticViewstaticAstaticmainstartI'mAclassI'mBclassmain生了一個(gè)IOException,將會(huì)輸出什么結(jié)果()publicvoidgetCustomerInfo(){try{//dosomethingthatmaycausean}catch(java.io.FileNotFoundExceptionex){}catch(java.io.IOExceptionex){}catch(java.lang.Exceptionex){}}A、B、D、答案解析:多個(gè)catch語句塊的執(zhí)行順序。當(dāng)用多個(gè)catch語句時(shí),catch語句塊在次序catchcatchException放在catch語句塊的最后一個(gè)。importjava.io.*;importjava.util.*;publicclasspublicstaticvoidmain(String[]args){Strings;System.out.println("s="+}}ABC由于StringsDNullPointExceptionSystem.out.println("5"+2);的輸出結(jié)果應(yīng)該是()。A52 答案publicclassExampleStringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain(Stringargs[]){Exampleex=newExample();ex.change(ex.str,ex.ch);System.out.print(ex.str+"and");}publicvoidchange(Stringstr,charch[]){str="testok";ch[0]=}}A、goodandabcB、goodandgbcC、testokandabcDtestokandgbc解析:大家可能以為Java中String和數(shù)組都是對(duì)象所以肯定是對(duì)象,然后就會(huì)選D,其實(shí)這是個(gè)很大的誤區(qū):因?yàn)樵趈ava里沒有傳遞,只有值傳遞View對(duì)象交換前:p1=Alexia對(duì)象交換前:p2=Edward對(duì)象交換后:p1=Alexia對(duì)象交換后:p2=Edward對(duì)象數(shù)組交換前:arraya[0]=Alexiafemale,arraya[1]=Edward對(duì)象數(shù)組交換前:arrayb[0]=jmwangfemale,arrayb[1]=hwu對(duì)象數(shù)組交換后:arraya[0]=Alexiafemale,arraya[1]=Edward對(duì)象數(shù)組交換后:arrayb[0]=jmwangfemale,arrayb[1]=hwu基本類型數(shù)組交換前:a[0]=0,a[1]=基本類型數(shù)組交換前:b[0]=1,b[1]=基本類型數(shù)組交換后:a[0]=0,a[1]=基本類型數(shù)組交換后:b[0]=1,b[1]=對(duì)象數(shù)組內(nèi)容交換并改變后:arraya[1]=wjl對(duì)象數(shù)組內(nèi)容交換并改變后:arrayb[1]=Edward基本類型數(shù)組內(nèi)容交換并改變后:a[1]=基本類型數(shù)組內(nèi)容交換并改變后:b[1]=改變其實(shí)際地址但能改變其中的內(nèi)容。?AFileInputStreamin=newFileInputStream("file.dat");in.skip(9);intBFileInputStreamin=newFileInputStream("file.dat");in.skip(10);intCFileInputStreamin=newFileInputStream("file.dat");intDRandomAccessFilein=newRandomAccessFile("file.dat");in.skip(9);int答案FileInputStream)skip節(jié),在實(shí)際應(yīng)用中我們往往需要在文件中或者寫入各種類型的數(shù)據(jù),就必須先將其他FileOutputStreamDataInputStream/DataOutputStreamDataInputStream/DataOutputStream功能的類就是一個(gè)包裝類,也叫過濾流類或處理便。其中DataInputStream包裝類的構(gòu)造函數(shù)語法:publicDataInputStream(InputStreamin)。包裝類也可以包裝另外一個(gè)包裝類。BCAA正確的,與網(wǎng)上解析的資料有些出入,下面是code:View那么DRandomAccessFileIOObject可以對(duì)文件進(jìn)行和寫入支持文件的隨機(jī)即可以隨機(jī)文件中的某個(gè)位置內(nèi)容,RandomAccessFileRandomAccessFile的初始化是兩個(gè)參數(shù)而非一個(gè)參數(shù)采用的跳躍方法是skipBytes()skip(),即正確的寫法是:RandomAccessFilein=newRandomAccessFile("file.dat","r");intc=個(gè)呢?A和D~~~ DIndexOutOfBoundsException答案2publicstaticintgetValue(inti){intresult=0;switch(i){case1:result=result+i;case2:result=result+i*2;case3:result=result+i*}return} 答案casebreak,case2 classMyClasspublicintconstInt=//addcodepublicvoidmethod()}} voidmethod(intBconstInt=constInt+CpublicintD voidanotherMethod()答案,抽象類可以包含屬性,方法,構(gòu)造方法,初始化塊類,枚舉類,和普通類一樣,抽象類中的抽象方法(加了關(guān)鍵字的方法)classJava語言中表示的是一種繼承關(guān)系,一個(gè)類只能使用一次繼承關(guān)何方法,如Remote接口)和數(shù)據(jù)共享(里面的變量全是常量)的作用。在class中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是staticfinal的,不過在interface中一般不定義數(shù)據(jù)成員所有的成員方法默認(rèn)都是 classinterface所反映出的設(shè)計(jì)理念不同。其實(shí)classpublicstaticfinalfriendly型,其值可以在子類中重ShapeCircleCirclecircle面哪個(gè)字段會(huì)被保存到文件中?()classShapepublicString}classCircleextendsShapeimplementsSerializable{privatefloatradius;transientintpublicstaticStringtype=}BCD答案 下面是People和Child類的定義和構(gòu)造方法,每個(gè)構(gòu)造方法都輸出。在執(zhí)行newChi

溫馨提示

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

評(píng)論

0/150

提交評(píng)論