2012年百度校園招聘筆試題目及答案(java)


作者:xcbeyond
瘋狂源自夢想,技術成就輝煌!微信公眾號:《程序猿技術大咖》號主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗,樂于技術輸出、分享,現(xiàn)階段從事微服務架構項目的研發(fā)工作,涉及架構設計、技術選型、業(yè)務研發(fā)等工作。對于Java、微服務、數(shù)據(jù)庫、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗。 






   

一、選擇題

1.Java是從(B)語言改進重新設計。

A.Ada B.C++ C.Pasacal D.BASIC

2.下列語句哪一個正確(B)

A. Java程序經(jīng)編譯后會產(chǎn)生machine code B. Java程序經(jīng)編譯后會產(chǎn)生byte code

C. Java程序經(jīng)編譯后會產(chǎn)生DLL D.以上都不正確

3.下列說法正確的有(C)

A. class中的constructor不可省略

B. constructor必須與class同名,但方法不能與class同名

C. constructor在一個對象被new時執(zhí)行

D.一個class只能定義一個constructor

4.提供Java存取數(shù)據(jù)庫能力的包是(A)

A.java.sql B.java.awt C.java.lang D.java.swing

5.下列運算符合法的是(A)

A.&& B.<> C.if D.:=

6.執(zhí)行如下程序代碼后,C的值是(C)

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

A.0 B.1 C.-1 D.死循環(huán)

7.下列哪一種敘述是正確的(D)

A. abstract修飾符可修飾字段、方法和類

B.抽象方法的body部分必須用一對大括號{ }包住

C.聲明抽象方法,大括號可有可無

D.聲明抽象方法不可寫出大括號

8.下列語句正確的是(AB)

A.形式參數(shù)可被視為local variable

B.形式參數(shù)可被字段修飾符修飾      可以用final修飾  

C.形式參數(shù)為方法被調(diào)用時,真正被傳遞的參數(shù) D.形式參數(shù)不可以是對象

9.下列哪種說法是正確的(D)

A.實例方法可直接調(diào)用超類的實例方法 B.實例方法可直接調(diào)用超類的類方法

C.實例方法可直接調(diào)用其他類的實例方法 D.實例方法可直接調(diào)用本類的類方法

10. 下列哪個選項是合法的標識符?(B)

A.123 B._name C.class D.1first

11. 下列哪個選項是Java調(diào)試器,如果編譯器返回程序代碼的錯誤,可以用它對程序進行調(diào)試? (C)

A.java.exe B.javadoc.exe C.jdb.exe D.Javaprof.exe

JDB是基于文本和命令行的調(diào)試工具

12. 下列的哪個選項可以正確用以表示八進制值8? (D)

A.0x8 B.0x10 C.08 D.010

13. 下列的哪個賦值語句是不正確的? (A)

A.float f = 11.1 B.double d =5.3E12

C.float d = 3.14f D.doublef=11.1E10f

14. 下列的哪個賦值語句是正確的? (A D)

A.char a=12 B.int a=12.0 C.int a=12.0f D.int a=(int)12.0

15. 下列哪個選項是正確計算42度(角度)的余弦值?(C)

A.double d=Math.cos(42)

B.double d=Math.cosine(42)

C.double d=Math.cos(Math.toRadians(42))

D.double d=Math.cos(Math.toDegrees(42))

toRadians將角度轉(zhuǎn)換為弧度

toDegrees將弧度轉(zhuǎn)換為角度

16. 下列InputStream類中哪個方法可以用于關閉流? (B)

A.skip() B.close() C.mark() D.reset()

17. 下列方法中哪個是執(zhí)行線程的方法? (A)

A.run() B.start() C.sleep() D.suspend()

18. 下列關于Frame類的說法不正確的是 ?(C)

A.Frame是Window類的直接子類 B.Frame對象顯示的效果是一個窗口

C.Frame被默認初始化為可見 D.Frame的默認布局管理器為BorderLayout

19. 下列Java常見事件類中哪個是鼠標事件類?(C)

A.InputEvent B.KeyEvent C.MouseEvent D.WindowEvent

20. 在Applet的關鍵方法中,哪個方法是關閉瀏覽器以釋放Applet占用的所有資源?(D)

A.init() B.start() C.paint() D.destroy()

21. 下列哪個是面向大型企業(yè)級用容器管理專用構件的應用平臺?(A)

A.J2EE B.J2ME C.J2SE D.J2DE

java三大平臺:

      Java SE 是Java平臺標準版的簡稱(Java Platform, Standard Edition) (also known as Java 2 Platform) ,用于開發(fā)和部署桌面、服務器以及嵌入設備和實時環(huán)境中的Java應用程序。Java SE包括用于開發(fā)Java Web服務的類庫,同時,Java SE為Java EE提供了基礎。Java SE(Java Platform, Standard Edition,Java標準版)就是基于JDK和JRE的。

    Java EE是Java平臺企業(yè)版的簡稱(Java Platform, Enterprise Edition),用于開發(fā)便于組裝、健壯、可擴展、安全的服務器端Java應用。Java EE建立于Java SE之上,具有Web服務、組件模型、以及通信API等特性,這些為面向服務的架構(SOA)以及開發(fā)Web2.0應用提供了支持。 Java EE基于Java SE,此外新加了企業(yè)應用所需的類庫。

     Java ME是Java微版的簡稱(Java Platform, Enterprise Edition),是一個技術和規(guī)范的集合,它為移動設備(包括消費類產(chǎn)品、嵌入式設備、高級移動設備等)提供了基于Java環(huán)境的開發(fā)與應用平臺。Java ME目前分為兩類配置,一類是面向小型移動設備的CLDC(Connected Limited Device Profile ),一類是面型功能更強大的移動設備如智能手機和及頂盒,稱為CDC(Connected Device Profile CDC)

 

22.下列關于繼承的哪項敘述是正確的?D

A.在java中允許多重繼承

B.在java中一個類只能實現(xiàn)一個接口

C.在java中一個類不能同時繼承一個類和實現(xiàn)一個接口

D.java的單一繼承使代碼更可靠

23. 下列哪個修飾符可以使在一個類中定義的成員變量只能被同一包中的類訪問? B

A.private B.無修飾符 C.public D.protected

24.下列說法正確的有(B C D)

A.環(huán)境變量可在編譯source code時指定

B.在編譯程序時,所能指定的環(huán)境變量不包括class path






C. javac一次可同時編譯數(shù)個Java源文件

D. javac.exe能指定編譯結果要置于哪個目錄(directory)

25.下列說法錯誤的有(B C D)

A.數(shù)組是一種對象 B.數(shù)組屬于一種原生類

C. int number=[]={31,23,33,43,35,63} D.數(shù)組的大小可以任意改變

26.不能用來修飾interface的有(A C D)

A.private B.public C.protected D.static

27.下列正確的有(A C D)

A. call by value不會改變實際參數(shù)的數(shù)值

B. call by reference能改變實際參數(shù)的參考地址

C. call by reference不能改變實際參數(shù)的參考地址

D. call by reference能改變實際參數(shù)的內(nèi)容

28.下列說法錯誤的有(B C D)

A.在類方法中可用this來調(diào)用本類的類方法

B.在類方法中調(diào)用本類的類方法時可直接調(diào)用

C.在類方法中只能調(diào)用本類中的類方法

D.在類方法中絕對不能調(diào)用實例方法

29.下列說法錯誤的有(A B C )

A. Java面向?qū)ο笳Z言容許單獨的過程與函數(shù)存在

B. Java面向?qū)ο笳Z言容許單獨的方法存在

C. Java語言中的方法屬于類中的成員(member)

D. Java語言中的方法必定隸屬于某一類(對象),調(diào)用方法與過程或函數(shù)相同

30.下列說法錯誤的有(B C D)

A.能被java.exe成功運行的java class文件必須有main()方法

B. J2SDK就是Java API   J2Sdk(Java軟件開發(fā)工具包)是Sun公司開發(fā)的編程工具

C. Appletviewer.exe可利用jar選項運行.jar文件

     Appletviewer.exe用來瀏覽你所寫的applet程序

D.能被Appletviewer成功運行的java class文件必須有main()方法

二、填空題

1. 如果要把一個對象聲明為多線程,則該對象必須是Thread類或繼承Thread類或?qū)崿F(xiàn)Runnable接口類類型。

2. java中提供了兩種用于多態(tài)的機制方法的重載 ,方法的重寫。

3. java中用extends關鍵字指明繼承關系.用implements關鍵字指明對接口的實現(xiàn)。

4. this代表了當前對象的引用,super表示的是當前對象的父類對象。

5. 在運行時,由java解釋器自動引入,而不用import語句引入的包是java.lang.*。

6.一般有兩種用于創(chuàng)建線程對象的方法,一是繼承Thread類,二是實現(xiàn)Runnable接口。

7. 一般用System.in創(chuàng)建InputStream對象,表示從標準輸入中獲取數(shù)據(jù),用System.out創(chuàng)建OutputStream對象,表示輸出到標準輸出設備中。

8. 關鍵字final表明一個對象或變量在初始化后不能被修改。

9. 面向?qū)ο蟪绦虻闹饕卣鳎豪^承,多態(tài),封裝。

10. 一個完整的URL地址由協(xié)議,主機域名,端口和文件四部分組成。

三、閱讀題:寫出程序結果或挑出程序的錯誤

1、 JAVA代碼查錯

abstract class Name {

private String name;

public abstract boolean isStupidName(String name) {} //去掉{}

}

2、 JAVA代碼查錯

public class Something {

void doSomething () {

private String s = "";// 去掉private修飾詞 或者將該句放到屬性域里

int l = s.length();

}

}

3、 JAVA代碼查錯

abstract class Something {

private abstract String doSomething ();//private -> public

}

4、JAVA代碼查錯

public class Something {

public int addOne(final int x) {//x被final修飾,++x值無法被修改返回

return ++x;

}

}

5、以下程序段的輸出結果為:

public class EqualsMethod {

public static void main(String[] args) {

Integer n1 = new Integer(47);

Integer n2 = new Integer(47);

System.out.print(n1==n2);

System.out.print(“,”);

System.out.println(n1!=n2);

}

}

false,true

四、附加題:

寫一個Singleton。Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

public class Singleton {

private static final Singleton instance = new Singleton();

private Singleton() {

}

public static Singleton getInstance() {

return instance;

}

}

 

PS: 以上題目均為自己做的,或許存在一些錯誤,望大家給予指出,共同學習!