2012年百度校园招聘笔试题目及答案(java)


作者:xcbeyond
疯狂源自梦想,技术成就辉煌!微信公众号:《程序猿技术大咖》号主,专注后端开发多年,拥有丰富的研发经验,乐于技术输出、分享,现阶段从事微服务架构项目的研发工作,涉及架构设计、技术选型、业务研发等工作。对于Java、微服务、数据库、Docker有深入了解,并有大量的调优经验。 






   

一、选择题

1.Java是从(B)语言改进重新设计。

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

2.下列语句哪一个正确(B)

A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code

C. Java程序经编译后会产生DLL D.以上都不正确

3.下列说法正确的有(C)

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D.一个class只能定义一个constructor

4.提供Java存取数据库能力的包是(A)

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

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

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

6.执行如下程序代码后,C的值是(C)

a=0;c=0;

do{

--c;

a=a-1;

}while(a>0);

A.0 B.1 C.-1 D.死循环

7.下列哪一种叙述是正确的(D)

A. abstract修饰符可修饰字段、方法和类

B.抽象方法的body部分必须用一对大括号{ }包住

C.声明抽象方法,大括号可有可无

D.声明抽象方法不可写出大括号

8.下列语句正确的是(AB)

A.形式参数可被视为local variable

B.形式参数可被字段修饰符修饰      可以用final修饰  

C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

9.下列哪种说法是正确的(D)

A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法

C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法

10. 下列哪个选项是合法的标识符?(B)

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

11. 下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试? (C)

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

JDB是基于文本和命令行的调试工具

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将角度转换为弧度

toDegrees将弧度转换为角度

16. 下列InputStream类中哪个方法可以用于关闭流? (B)

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

17. 下列方法中哪个是执行线程的方法? (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. 下列哪个是面向大型企业级用容器管理专用构件的应用平台?(A)

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

java三大平台:

      Java SE 是Java平台标准版的简称(Java Platform, Standard Edition) (also known as Java 2 Platform) ,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序。Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。Java SE(Java Platform, Standard Edition,Java标准版)就是基于JDK和JRE的。

    Java EE是Java平台企业版的简称(Java Platform, Enterprise Edition),用于开发便于组装、健壮、可扩展、安全的服务器端Java应用。Java EE建立于Java SE之上,具有Web服务、组件模型、以及通信API等特性,这些为面向服务的架构(SOA)以及开发Web2.0应用提供了支持。 Java EE基于Java SE,此外新加了企业应用所需的类库。

     Java ME是Java微版的简称(Java Platform, Enterprise Edition),是一个技术和规范的集合,它为移动设备(包括消费类产品、嵌入式设备、高级移动设备等)提供了基于Java环境的开发与应用平台。Java ME目前分为两类配置,一类是面向小型移动设备的CLDC(Connected Limited Device Profile ),一类是面型功能更强大的移动设备如智能手机和及顶盒,称为CDC(Connected Device Profile CDC)

 

22.下列关于继承的哪项叙述是正确的?D

A.在java中允许多重继承

B.在java中一个类只能实现一个接口

C.在java中一个类不能同时继承一个类和实现一个接口

D.java的单一继承使代码更可靠

23. 下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问? B

A.private B.无修饰符 C.public D.protected

24.下列说法正确的有(B C D)

A.环境变量可在编译source code时指定

B.在编译程序时,所能指定的环境变量不包括class path






C. javac一次可同时编译数个Java源文件

D. javac.exe能指定编译结果要置于哪个目录(directory)

25.下列说法错误的有(B C D)

A.数组是一种对象 B.数组属于一种原生类

C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变

26.不能用来修饰interface的有(A C D)

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

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

A. call by value不会改变实际参数的数值

B. call by reference能改变实际参数的参考地址

C. call by reference不能改变实际参数的参考地址

D. call by reference能改变实际参数的内容

28.下列说法错误的有(B C D)

A.在类方法中可用this来调用本类的类方法

B.在类方法中调用本类的类方法时可直接调用

C.在类方法中只能调用本类中的类方法

D.在类方法中绝对不能调用实例方法

29.下列说法错误的有(A B C )

A. Java面向对象语言容许单独的过程与函数存在

B. Java面向对象语言容许单独的方法存在

C. Java语言中的方法属于类中的成员(member)

D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同

30.下列说法错误的有(B C D)

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

B. J2SDK就是Java API   J2Sdk(Java软件开发工具包)是Sun公司开发的编程工具

C. Appletviewer.exe可利用jar选项运行.jar文件

     Appletviewer.exe用来浏览你所写的applet程序

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

二、填空题

1. 如果要把一个对象声明为多线程,则该对象必须是Thread类或继承Thread类或实现Runnable接口类类型。

2. java中提供了两种用于多态的机制方法的重载 ,方法的重写。

3. java中用extends关键字指明继承关系.用implements关键字指明对接口的实现。

4. this代表了当前对象的引用,super表示的是当前对象的父类对象。

5. 在运行时,由java解释器自动引入,而不用import语句引入的包是java.lang.*。

6.一般有两种用于创建线程对象的方法,一是继承Thread类,二是实现Runnable接口。

7. 一般用System.in创建InputStream对象,表示从标准输入中获取数据,用System.out创建OutputStream对象,表示输出到标准输出设备中。

8. 关键字final表明一个对象或变量在初始化后不能被修改。

9. 面向对象程序的主要特征:继承,多态,封装。

10. 一个完整的URL地址由协议,主机域名,端口和文件四部分组成。

三、阅读题:写出程序结果或挑出程序的错误

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: 以上题目均为自己做的,或许存在一些错误,望大家给予指出,共同学习!