綜合基礎(chǔ)測試(Java類)_第1頁
綜合基礎(chǔ)測試(Java類)_第2頁
綜合基礎(chǔ)測試(Java類)_第3頁
綜合基礎(chǔ)測試(Java類)_第4頁
綜合基礎(chǔ)測試(Java類)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

綜合基礎(chǔ)測試(Java類)姓名:鐘煜分?jǐn)?shù):給出下面一段代碼的打印信息,并說明”==”與“equals”的區(qū)別(6分)publicclassTest{ publicstaticvoidmain(String[]args) { inta=10; intb=10;floatc=10.0f Integerain=newInteger(10); Integerbin=newInteger(10); Floatcfl=newFloat(10.0f); System.out.println(“a==bis“+(a==b)); System.out.println(“a==cis“+(a==c)); System.out.println(“ain==binis“+(ain==bin)); System.out.println(“ain==cflis“+(ain==cfl)); System.out.println(“ain.equals(bin)is“+(ain.equals(bin))); System.out.println(“ain.equals(cfl)is“+(ain.equals(cfl))); }}編譯System.out.println(“ain==cflis“+(ain==cfl));時出錯,基本數(shù)據(jù)類型與對象類型不能用==比較equals方法在非空對象引用上實現(xiàn)相等關(guān)系:對于任何非空引用值x,x.equals(x)都應(yīng)返回true。對于任何非空引用值x和y,當(dāng)且僅當(dāng)y.equals(x)返回true時,x.equals(y)才應(yīng)返回true。對于任何非空引用值x、y和z,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)應(yīng)返回true。對于任何非空引用值x和y,多次調(diào)用x.equals(y)始終返回true或始終返回false,前提是對象上equals比較中所用的信息沒有被修改。對于任何非空引用值x,x.equals(null)都應(yīng)返回false。Object類的equals方法實現(xiàn)對象上差別可能性最大的相等關(guān)系;即,對于任何非空引用值x和y,當(dāng)且僅當(dāng)x和y引用同一個對象時,此方法才返回true(x==y具有值true)。==比較基本數(shù)據(jù)類型時,是比較對象個的實際值;比較對象類型時是比較個對象的hasCode值是否相等;寫出一個懶漢式Singleton出來(5分)publicclassSingleton{privateSingleton(){}

//注意這是private只供內(nèi)部調(diào)用privatestaticSingletoninstance=newSingleton();//這里提供了一個供外部訪問本class的靜態(tài)方法,可以直接訪問

publicstaticSingletongetInstance(){

returninstance;

}

}Strings=newString("zte");創(chuàng)建了幾個StringObject?(4分)2個StringObject一個是參數(shù)"zte"還有一個是通過構(gòu)造函數(shù)生成與該參數(shù)相同的字符序列的新的StringObjectshorts1=1;s1=s1+1;shorts1=1;s1+=1;上面兩行,那一行有錯,有什么錯?(4分)第一行有錯;編譯時出錯s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型??尚薷臑閟1=(short)(s1+1)。shorts1=1;s1+=1正確。兩個對象值相同(x.equals(y)==true),但卻可有不同的hashcode,這句話對不對?(4分)equals被重寫時,通常有必要重寫hashCode方法,相等對象必須具有相同的hashCode,但具有相同的hashCode的對象不一定相等。如果兩個對象對同一個對象使用equals方法都得到true值,則可根據(jù)傳遞性得到這兩個對象也相同的結(jié)論,所以他們應(yīng)該擁有相同的hashcode。swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?(4分)swtich能用在byte上不能用在long和String上swtich只能用在charbyteshortint上指出下面這段代碼存在的問題,并給出解決方案(7分)publicclassMyThreadimplementsRunnable{ inti=0;publicvoidrun(){ processData();//只對數(shù)據(jù)進(jìn)行處理 refreshUI();//刷新相應(yīng)顯示} } 2個方法在并沒有被定義,processData()方法只對數(shù)據(jù)進(jìn)行處理而refreshUI()方法刷新相應(yīng)顯示;類MyThread繼承了Runnable接口,也就是說數(shù)據(jù)進(jìn)行處理和刷新顯示在一個線程中處理,那實現(xiàn)多線程就沒有任何意義了,數(shù)據(jù)處理是先進(jìn)行的,如果在數(shù)據(jù)處理過程中發(fā)生不可捕獲的異常而中斷,數(shù)據(jù)不會刷新顯示,可能會造成數(shù)據(jù)的丟失等 應(yīng)該多開啟一個個線程給刷新顯示,如果數(shù)據(jù)處理的線程中斷也不會影響數(shù)據(jù)的丟失指出下面定義的類中三個函數(shù)同步的對象,以及使用時的注意事項(6分)publicclassMyClass{ publicsynchronizedvoidfun1() { //… } publicvoidfun2() { synchronized(this) { //… } } publicvoidfun3() { synchronized(obj){ //…} } } 答:publicsynchronizedvoidfun1() { //… }同步的是fun1()這個方法在該類內(nèi)部同步,一旦新實例化對象后,不能保證兩個實例化對象之間能夠同步。publicvoidfun2() { synchronized(this) { //… } }同步的是代碼塊,把該類本身作為同步對象,在該類內(nèi)部有效,一旦新實例化對象后,不能保證兩個實例化對象之間能夠同步。 publicvoidfun3() { synchronized(obj){ //…} }同步的實代碼塊,必須要保證obj對象是同一個才能同步 給出下面一段代碼的兩個函數(shù)的返回值,說明原因(4)publicclassMyClass{ publicintfun1(){ try{ return1; } catch(Exceptionex) { return2; }}publicintfun2(){ try{ return3;}finally{ return4;}}}第一個函數(shù)返回1,第二個函數(shù)返回4。第一個函數(shù)會先執(zhí)行try中的語句,出錯的話才會執(zhí)行catch中的語句。第二個函數(shù)在執(zhí)行try中的語句時,直接return4;10、當(dāng)一個對象被當(dāng)作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?(5分) 是值傳遞。Java編程語言只由值傳遞參數(shù)。當(dāng)一個對象實例作為一個參數(shù)被傳遞到方法中時,參數(shù)的值就是對該對象的引用。對象的內(nèi)容可以在被調(diào)用的方法中改變,但對象的引用是永遠(yuǎn)不會改變的。11、接口是否可繼承接口?抽象類是否可實現(xiàn)(implements)接口?抽象類是否可繼承實體類(concreteclass)?(4分) 接口可以繼承接口,抽象類可以實現(xiàn)接口,也可以繼承實體類 12、指出模態(tài)對話框和非模態(tài)對話框的區(qū)別,并構(gòu)造一個模態(tài)對話框的實例(不需要在對話框中加載控件,假設(shè)父窗口為mainFrame)(5分) 非模態(tài)對話框關(guān)閉時調(diào)用dispose()方法,它將釋放所有與對話框相關(guān)的系統(tǒng)資源, 模態(tài)對話框不是用構(gòu)造器Dialog(FrameparentWindow,Stringtitle,Booleanmode)Dialog(parentWindow,"模態(tài)對話框",true) 13、指出abstractclass和interface有什么區(qū)別?(6分) 聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstractclass)。不能創(chuàng)建abstract類的實例。然而可以創(chuàng)建一個變量,其類型是一個抽象類,并讓它指向具體子類的一個實例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract類的子類必須實現(xiàn)父類中的所有的抽象方法,否則子類也必須是抽象類。在接口中,所有方法都是抽象的。接口中的所有方法都是抽象的。接口只可以定義staticfinal成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof運算符可以用來決定某對象的類是否實現(xiàn)了接口。14、下面兩條語句有何區(qū)別,采用哪中更好?(5分) Booleanflag=newBoolean(false);Booleanflag=Boolean.FALSE;答:第一句是通過創(chuàng)建一個新的Boolean類型的實例并初始化值為false并賦給flag。第二句則是通過類名直接訪問已定義好的靜態(tài)的Boolean類型的常量FALSE并賦給flag。采用第二句比較好,因為可以節(jié)約內(nèi)存資源,提高效率。15、構(gòu)造器Constructor是否可被override?是否可被Overload?Overload和Override的區(qū)別?(5分)構(gòu)造器Constructor是不可被override區(qū)別:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被”屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。 16、Vector和ArrayList的區(qū)別?(4分) ArrayList和Vector主要從二方面來說.

一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的

二.數(shù)據(jù)增長:當(dāng)需要增長時,Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半17、簡述StringTokenizer的功能(3分) stringtokenizer類允許應(yīng)用程序?qū)⒆址纸鉃闃?biāo)記。tokenization方法比StreamTokenizer類所使用的方法更簡單。StringTokenizer方法不區(qū)分標(biāo)識符、數(shù)和帶引號的字符串,它們也不識別并跳過注釋.StringTokenizer是出于兼容性的原因而被保留的遺留類(雖然在新代碼中并不鼓勵使用它)。建議所有尋求此功能的人使用String的split方法 18、線程操作中sleep()和wait()有什么區(qū)別?(6分)sleep()方法是使線程停止一段時間的方法。在sleep時間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調(diào)度為放棄執(zhí)行,除非(a)"醒來"的線程具有更高的優(yōu)先級(b)正在運行的線程因為其它原因而阻塞。wait()是線程交互時,如果線程對一個同步對象x發(fā)出一個wait()調(diào)用,該線程會暫停執(zhí)行,被調(diào)對象進(jìn)入等待狀態(tài),直到被喚醒或等待時間到。19、根據(jù)如下的界面編寫相應(yīng)實現(xiàn)代碼(中間區(qū)域為文本輸入?yún)^(qū),底部為按鈕)(8分)PublicclassJCheckbocDemo{Publicstaticvoidmain(Stringagrs[]){Containercon=newJFrame("一個例子");Panelpanel1=newPanel();Panelpanel2=newPanel();TextAreatext=newTextArea();Buttonbt1=newButton("我的按鈕");panel1.add(text);panel2.add(b

溫馨提示

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

評論

0/150

提交評論