正式应聘的JAVA笔试题和答案

发布时间 : 星期一 文章正式应聘的JAVA笔试题和答案更新完毕开始阅读

一:选择题

1:List, Set, Map是否继承自Collection接口

A:都是,B 都不是 C:List, Set 是 D:Set, Map 是 正确答案 C

2:下面描述哪个是正确的

A:构造器Constructor可被override

B:可以继承String类

C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行

D:两个对象值相同(x.equals(y) == true),那么也有相同的hash code 正确答案 D

3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized

A:都能 B:都不能 C:可以为static D:可以为native 正确答案 A

4:下面的程序中,temp的最终值是什么? long temo=(int)3.9; temp%=2;

A: 0 B :1 C :2 D : 3

正确答案 B

5、请在以下选项中选出非基本数据类型的选项 ( )

A: int B:byte C: boolean D:String

正确答案 D

6、阅读下面代码段, 给出以下代码的输出结果 public class Test{

public static void main(String args[]) {

String str1 = \ String str = \

String str2 = new String(\

System.out.println(str1 == str2); System.out.println(str1.equals(str2)); System.out.println(str == str1); } }

A:true,true,true 正确答案 D

B:true,false,true C:true,true,false D:false,true,true

7、阅读下面代码段, 给出以下代码的输出结果:

int i=1; switch (i) { case 0:

System.out.println(\ break; case 1:

System.out.println(\ case 2:

System.out.println(\ default:

System.out.println(\ } A:

正确答案 C

B:

:

D:default

8、阅读下面代码段, 给出以下代码的输出结果

public class MyClass{ static int i;

public static void main(String argv[]){

}

D:0

}

A: Error Variable i may not have been initialized B:null C:正确答案 D

System.out.println(i);

9、阅读下面代码段, 给出以下代码的输出结果:

class A{ static{

System.out.print( “A1”); }

public A(){

System.out.print( “A2”); } }

class B extends A{ static{

System.out.print( “B1”); }

public B(){

System.out.print( “B2”); } }

public class Hello{

public static void main(String[] args){ } }

A:A1B1A2B2B1B2 B:A1B1A2B2A2B2 C:A1B1A2B2B1B2 D:A1A2B1B2A2B2 正确答案 B

A ab = new B(); ab = new B();

10、阅读下面代码段, 给出以下代码的输出结果

public class TestData {

} }

A.test1 B.test2 C.null D.”” 正确答案 A

public String getValue () { }

TestData test = new TestData(); String a = test.getValue(); System.out.println(a);

String value = \try{ }

return value;

value = \return value; e.printStackTrace(); value = \

}catch(Exception e){ }finally{

public static void main(String args[]){

二、改错题,如果有错误,请指出并修正。

1、

interface A{ int x = 0; } class B{ int x =1; }

class C extends B implements A { public void pX(){

System.out.println(x); }

public static void main(String[] args) { new C().pX(); } }

答案:错误。在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确。

2、

class Data {

int i = 1; }

public class TestData { Data a1 = new Data();

final Data a2 = new Data(); final Data a21;

static final Data a3 = new Data(); public static void main(String[] args) { }

}

答案:(1),(5),(7)处错误:

a21应该在定义或者TestData构造函数中初始化 a2,a3是final类型的,不可以在使用中进行赋值

3、

abstract class Something {

private abstract String doSomething (); }

答案: 错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract method封锁起来呢? (同理,abstract method前不能加final)。

TestData test = new TestData(); test.a21 = new Data();(1) test.a1.i++;// (2)

test.a1 = new Data();// (3) test.a2.i++;;// (4) test.a2 = new Data();//(5) test.a3.i++;;// (6) test.a3 = new Data();//(7)

三、简答题

1、char型变量中能不能存储一个中文汉字?为什么?

答案:能够定义成为一个中文汉字的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的

2、sleep() 和 wait() 有什么区别?

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

3、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)

答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数

四、数据库基础及问答

1、说出你对于Overriding和Overloading的理解。构造函数能否被重写?重载能够改变方法的返回值类型。

答案:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被\屏蔽\了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。构造函数不能被重写。Overloaded的方法是可以改变返回值的类型

2、说出数据连接池的工作机制是什么?

答:J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

3、数据库编程

有三张表,学生表(student)、学生课程表(calsses)、学生分数表(grades),请设计三张表的结构,并实现以下要求:

(1) 统计每个学生各科目平均分,要求显示学生姓名,平均分值,并筛选出平均分大于

60的学生,显示顺序按照平均分降序排列

(2) 写出以上功能的sql语句

五、算法题

1、排序都有哪几种方法?请列举。用JAVA实现任意一种排序(伪代码亦可)。

答:

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

快速排序的伪代码。

/ /使用快速排序方法对a[ 0 :n- 1 ]排序

从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点

把余下的元素分割为两段left 和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点

递归地使用快速排序方法对left 进行排序 递归地使用快速排序方法对right 进行排序 所得结果为left+middle+right

联系合同范文客服:xxxxx#qq.com(#替换为@)