java面試題(nit-pro).docx_第1頁
java面試題(nit-pro).docx_第2頁
java面試題(nit-pro).docx_第3頁
java面試題(nit-pro).docx_第4頁
java面試題(nit-pro).docx_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

有價值的java面試題(nit-pro) 2010-06-26 08:05:51| 分類: Java SE | 標簽: |字號大中小 訂閱 一、選擇題:(每題2分)1. 名為HelloWorld.java的Java應(yīng)用程序如下:public class HelloWorld public static void main(String args) System.out.println(Hello World!); 將這個程序放在C:Test下,然后在命令行窗口中,進入到C:Test路徑執(zhí)行如下指令:javac helloworld.java將得到( )結(jié)果。A. 編譯出錯。B. 編譯成功,生成名為HelloWorld.class的文件。C. 編譯成功,生成名為helloworld.class的文件。D. 找不到名為helloworld.java的文件。答案: D。在JAVA中是嚴格區(qū)分大小寫的2. 下面的程序名為Student.java:public class Studentprivate String name;public Student(String s_name) /1name = s_name; /2public static void main(String args)Student s = new Student(); /3使用如下指令編譯:javac Student.java。將會得到的結(jié)果( )。A. 將會順利通過編譯,并將產(chǎn)生一個Student.class的類文件。B. 編譯時在/3處出錯。C. 編譯時在/2處出錯。D. 編譯時在/1處出錯。答案:B。因為Student的構(gòu)造函數(shù)是帶有參數(shù)的構(gòu)造函數(shù)。3. 關(guān)于下面的類描述中正確的是( )。class Test / 1void test(int i) / 2System.out.println(I am an int.); / 3 / 4void test(String s) / 5System.out.println(I am astring.); / 6 / 7/ 8public static void main(String args) / 9Test t=newTest(); / 10charch=y; / 11t.test(ch); / 12 / 13 / 14A. 編譯出錯B. 編譯通過,運行出錯C. 編譯通過,運行時輸出“I am an int”D. 編譯通過,運行時輸出“I am a string”答案:C。字符在ASCii碼中是以整數(shù)形式存在的。4. 關(guān)于下述程序:public class Test3 public static void main(String agrs) byte b = 2,e =3; /1byte f = b+e; /2System.out.println(f); /3描述正確的是( )。A. 編譯通過,運行時打印出5。B. 編譯通過,運行時打印出23。C. 編譯不通過,在/2處有錯誤,因為此處f必須是一個int類型的變量。D. 編譯不通過,在/1處有錯誤,不能這樣定義變量答案:C5. 在Java中,關(guān)于讓垃圾回收器強制回收對象的說法中,正確的是( )。A垃圾回收不能強制B. 調(diào)用System.gc()方法C. 調(diào)用System.gc()方法,并且將需要回收的對象引用作為參數(shù)傳遞給這個方法D. 調(diào)用Runtime.gc()方法答案:B6. 關(guān)于下述程序:public class Test4public static void main(String agrs)double x = 1.234; /1double y = 2; /2System.out.println(+x+y); /3System.out.println(x+y+); /4描述正確的是( )。A. 編譯出錯。B. 編譯通過,執(zhí)行的時候在/2處報錯。C. 編譯通過,執(zhí)行時在/3處打印出3.234,在/4處打印出3.234。D. 編譯通過,執(zhí)行時在/3處打印出1.2342.0,在/4處打印出3.234。答案:D7. 將當前目錄下的所有文件都壓縮到一個test.jar包中,并且將壓縮信息顯示到控制臺上,可以使用下列的( )命令。A. jar vf test.jar ./ B. jar cvf test.jar .C. jar cv test.jar / D. jar cv test.jar .答案:B8. 下述程序:public class Test9static int i = 1;statici+;public Test9()i+;public static void main(String args)Test9 t1 = new Test9();System.out.println(t1.i); /1Test9 t2 = new Test9();System.out.println(t2.i); /2編譯運行后在/1和/2處分別打印出()。A. 2和2 B. 3和3 C. 3和4 D. 4和3答案:C9. 關(guān)于下述三個接口:public interface IA public void methodA();public interface IB public void methodB();public interface IC extends IA,IBpublic void methodA();正確的是()。A. 接口IC不能通過編譯,因為它繼承了兩個接口。B. 接口IC不能通過編譯,因為它定義了一個和IA中一樣的方法methodA()。C. 接口IC不能通過編譯,因為它繼承了兩個接口,并且還定義了一個和IA一樣的methodA()方法。D. 接口IC能夠順利通過編譯。答案:D10. 下述語句執(zhí)行結(jié)果為( )。int arr = new int10;A. arr0 是0 B. arr9 是0 C. arr10是0 D. arr0 是null答案:A。對象數(shù)組保存的是引用,基本類型數(shù)組保存的是基本類型的值11. 關(guān)于break和continue語句,下面說法錯誤的有( )。A. break只能用于循環(huán)語句中。B. continue只能用于循環(huán)語句中。C. 在循環(huán)語句中,break語句將終止循環(huán);而continue是略過當前循環(huán)中剩余的語句進入下一次循環(huán)。D. 在循環(huán)語句中,continue語句將終止循環(huán);而break是略過當前循環(huán)中剩余的語句進入下一次循環(huán)。答案:C12. 下面標識符合法的有( )A. IAMAClass B. $byte C. const D. _year答案:D。 標識符只能是字母和下劃線開頭。13. 關(guān)于垃圾收集的哪些敘述是對的?A. 程序開發(fā)者必須自己創(chuàng)建一個線程進行內(nèi)存釋放的工作。B. 垃圾收集將檢查并釋放不再使用的內(nèi)存。C. 垃圾收集允許程序開發(fā)者明確指定并立即釋放該內(nèi)存。D. 垃圾收集能夠在期望的時間釋放被java對象使用的內(nèi)存。答案:B14. 下面的程序的輸出結(jié)果是:( )class SuperClass static System.out.println(SuperClass);SuperClass() System.out.println(SuperClass();public static void main(String args) SubClass sc = new SubClass();class SubClass extends SuperClass static System.out.println(SubClass);SubClass() System.out.println(SubClass();A. SuperClass/SubClass/SuperClass()/SubClass()/B. SuperClass/SuperClass()/SubClass /SubClass()/C. SubClass / SuperClass /SubClass()/SuperClass()/D. SubClass/SubClass()/SuperClass / SuperClass()/答案:A15. 下面程序的運行結(jié)果是:( )class SuperClass public void f() System.out.print(SuperClass.f()/);class SubClass extends SuperClass public void f() System.out.print(SubClass.f()/);class ThirdClass public void g(SuperClass arg) System.out.print(g(SuperClass)/);arg.f();public void g(SubClass arg) System.out.print(g(SubClass)/);arg.f();public static void main(Stringargs) ThirdClass tc = newThirdClass();SuperClass sc = newSubClass();tc.g(sc);A. g(SubClass)/SubClass.f()/ B. g(SuperClass)/SuperClass.f()/C. g(SuperClass)/SubClass.f()/ D. g(SubClass)/SuperClass.f()/答案:A16. 取出字符串String target =IbmSunJavaBeaWeblogicOracle.中的子串“Java”的語句是:( )A. target.substring(5,10); B. target.substring(6,10);C. target.substring(5,9); D. target.substring(6,9);D 17. 下列描述正確的是:( )A. hashCode()返回是對象在內(nèi)存唯一的標識,對象不同,hashCode()返回值一定不同。B. hashCode()方法可以重寫,但重寫的邏輯要和equals()保持一致性。C. 語句System.out.println(java=java);打印出的結(jié)果為“false”。D. HashSet容器在存放某一類的對象時,改變該類的hashCode()方法可能會影響到HashSet容器的效率答案:B18. 屬于Collection容器的方法是:( )A. iterator B. hasNextElement C. toArray D. next答案:D19. 下列三條輸出語句輸出的結(jié)果為:( )System.out.print(Math.floor(156.1)+/);System.out.print(Math.ceil(-166.3)+/);System.out.print(Math.round(-123.5)+/);A. 156.0/-167.0/-124/ B. 157.0/-167.0/-123/C. 157.0/-166.0/-124/ D. 156.0/-166.0/-123/答案: D20. 下面的程序會有編譯錯誤,更正的方法為:( )class OuterClass public void f() String s1 = inner;class InnerClass public voidg() System.out.println(s1);A. 將變量s1聲明為static B. 將變量s1聲明為publicC. 將變量s1聲明為final D. 將內(nèi)部類InnerClass聲明為static答案:C.從內(nèi)部類中訪問局部變量,必須聲明為最終類型21. 已有接口定義:package test;public interface Role public void action() throwsjava.io.IOException;下面的類定義不會有編譯錯誤的是:A. package test;public class A implements Role public void action() throws java.io.FileNotFoundException B. package test;public class B implements Role public void action() throws java.io.IOException C. package test;public class C implements Role public void action() ;D. package test;public class D implements Role public void action() throws Exception 答案:D22. 下面程序的輸出結(jié)果為:import java.io.*;class TestRandomAccessFile public static void main(Stringargs) throws Exception RandomAccessFile file= new RandomAccessFile(temp.dat, rw); file.writeBoolean(true);file.writeInt(100);file.writeInt(12345);file.writeInt(6789);file.seek(5); System.out.println(file.readInt();A. 100 B. 6789 C. 12345 D. 16777216答案:C23. 下面程序輸出的結(jié)果是:( )class SomeClass implements Comparableprivate int number;private String name;SomeClass(int number, Stringname) = name;this.number = number;public String toString() return name + number;public int compareTo(Object obj)SomeClass sc =(SomeClass) obj;int f =pareTo();int f1 = number sc.number ? 1 : number = sc.number ? 0 : -1;return f != 0 ? f :f1;public static void main(String args) SomeClass array = new SomeClass(10, Java), new SomeClass(9, Java), new SomeClass(10, J2EE);java.util.Arrays.sort(array);for(int i =0;i System.out.print(array+/);A. J2EE10/Java9/Java10/ B. Java9/J2EE10/Java10/C. Java10/Java9/J2EE10/ D. J2EE10/Java10/Java9/答案:A24. 下面的程序輸出的結(jié)果為:public class Test public static void main(String args) StringBuffer buffer =new StringBuffer();int value = 18;do int temp= value & 0x07; buffer.append(temp); while(value=3)!=0); System.out.println(buffer.reverse();A. 24 B. 23 C. 25 D. 22答案:D。0x7是十六進制寫法,其最后3位為1(00000111),所以將18(00010010)與0x7作安位與后變?yōu)?0000010(即十進制數(shù)字2),temp變?yōu)?,然后循環(huán)執(zhí)行兩次buffer.append(temp)后,buffer就變?yōu)榱?2,buffer.reverse()是數(shù)組反轉(zhuǎn),22反轉(zhuǎn)之后還是22所以最后輸出為22二、簡答題:(每題4分)1. 簡述單子模式的思路,并且寫出一種實現(xiàn)方案:所謂單子模式就是在整個應(yīng)用過程中只向外界提供唯一的一份實例,也就是說在應(yīng)用時只有一個實例,這樣也就不用反反復(fù)復(fù)的創(chuàng)建實例了。那么根據(jù)他的要求,看下面一個最簡單的單子模式的代碼:public class Singleton private static Singleton single = new Singleton(); private Singleton() public static Singleton getSingletonInstance() return single; 通過這段代碼,我們發(fā)現(xiàn)要想實現(xiàn)這個Singleton類的實例,就必須要通過構(gòu)造函數(shù),但是他的構(gòu)造函數(shù)是private的,所以無法在別的類中實現(xiàn)他的實例化,但是可以通過getSingletonInstance方法,能返回一個實例single,因為他是public的靜態(tài)函數(shù),可以被別的類調(diào)用。這就是一個簡單單子模式。當然也可以把構(gòu)造single的語句放在getSingletonInstance方法中去實現(xiàn)??偨Y(jié)一下單子模式的特點:1. 構(gòu)造方法是private修飾的。2. 有一個private的靜態(tài)應(yīng)用實例。3. 有一個靜態(tài)的public的方法返回該類的實例。其實這三個特點完全是由于單子模式的要求所決定的。2. 寫出private、public、protected以及Default各自的訪問范圍:3. 用簡短的語言解釋下列詞匯a) JVM JVM:Java虛擬機(Java Virtual Machine),它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的,Java虛擬機有自己完善的硬件架構(gòu),器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。b) 垃圾回收機制c) 多態(tài)多態(tài),就是重載和重寫.重載發(fā)生在一個類中.重寫發(fā)生在子類,意思就是子類重寫父類相同名稱的方法.重載的特性,方法名相同.返回類型,傳入方法的參數(shù)不同(包括個數(shù)和類型). 重寫的特性,方法名相同,返回類型,參數(shù)均相同,必須發(fā)生在子類.d) 動態(tài)綁定運行時綁定也叫動態(tài)綁定,它是一種調(diào)用對象方法的機制。Java調(diào)用對象方法時,一般采用運行時綁定機制。 1Java的方法調(diào)用過程 編譯器查看對象的聲明類型和方法名(對象變量的聲明類型)。通過聲明類型找到方法列表。 編譯器查看調(diào)用方法時提供的參數(shù)類型。 如果方法是private、static、final或者構(gòu)造器,編譯器就可以確定調(diào)用那個方法。這是靜態(tài)綁定。 如果不是上述情況,就要使用運行時(動態(tài))綁定。在程序運行時,采用動態(tài)綁定意味著:虛擬機將調(diào)用對象實際類型所限定的方法。 2運行時(動態(tài))綁定的過程 虛擬機提取對象的實際類型的方法表; 虛擬機搜索方法簽名; 調(diào)用方法。 注意,這里說的是對象的實際類型。即在多態(tài)的情況下,虛擬機可以找到所運行對象的真正類型。 e) 關(guān)鍵字synchronized 1)synchronized關(guān)鍵字可以作為函數(shù)的修飾符,也可作為函數(shù)內(nèi)的語句,也就是平時說的同步方法和同步語句塊。如果再細的分類,synchronized可作用于instance變量、object reference(對象引用)、static函數(shù)和class literals(類名稱字面常量)身上。2)無論synchronized關(guān)鍵字加在方法上還是對象上,它取得的鎖都是對象,而不是把一段代碼或函數(shù)當作鎖而且同步方法很可能還會被其他線程的對象訪問。3)每個對象只有一個鎖(lock)與之相關(guān)聯(lián)。4)實現(xiàn)同步是要很大的系統(tǒng)開銷作為代價的,甚至可能造成死鎖,所以盡量避免無謂的同步控制。三、編程題(每題8分)1. 寫一個類,當該類的實例創(chuàng)建時即啟動一個線程,按照指定格式每隔5秒循環(huán)打印出當前的時間(提示:使用Runnable接口或內(nèi)部類創(chuàng)建線程,格式化日期使用java.text.SimpleDateFormat),指定的日期格式為:年月日 點分秒。package com.pool.domino;import java.text.SimpleDateFormat;import java.util.Date;public class ThreadState public static void main(String args) Test tr = new Test();Thread t = new Thread(tr);t.start(); class Test implements Runnablepublic void run() for(;)try Thread.sleep(5000);SimpleDateFormat my = new SimpleDateFormat(yyyy年MM月dd日 HH點mm分ss秒);Date now = new Date();System.out.println(my.format(now); catch (Interru

溫馨提示

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

評論

0/150

提交評論