当前位置:文档之家› 面试应聘的JAVA笔试题和答案

面试应聘的JAVA笔试题和答案

一、选择题1:List, Set, Map是否继承自Collection接口A:都是,B 都不是 C:List, Set 是 D:Set, Map 是正确答案 C2:下面描述哪个是正确的A:构造器Constructor可被overrideB:可以继承String类C:try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行D:两个对象值相同(y) == true),那么也有相同的hash code正确答案 D3 abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized A:都能 B:都不能 C:可以为static D:可以为native正确答案 A4:下面的程序中,temp的最终值是什么?long temo=(int);temp%=2;A: 0 B :1 C :2 D : 3正确答案 B5、请在以下选项中选出非基本数据类型的选项 ( )A: int B:byte C: boolean D:String正确答案 D6、阅读下面代码段, 给出以下代码的输出结果public class Test{public static void main(String args[]){String str1 = "abc";String str = "abc;String str2 = new String("abc");== str2);== str1);}}A:true,true,true B:true,false,true C:true,true,false D:false,true,true正确答案 D7、阅读下面代码段, 给出以下代码的输出结果:int i=1;switch (i) {case 0:"zero");break;case 1:"one");case 2:"two");default:"default");}A:one B:one, default C:one, two, default D:default 正确答案 C8、阅读下面代码段, 给出以下代码的输出结果public class MyClass{static int i;public static void main(String argv[]){}}A: Error Variable i may not have been initialized B:null C:1 D:0正确答案 D9、阅读下面代码段, 给出以下代码的输出结果:class A{static{“A1”);}public A(){“A2”);}}class B extends A{static{“B1”);}public B(){“B2”);}}public class Hello{public static void main(String[] args){A ab = new B();ab = new B();}}A:A1B1A2B2B1B2 B:A1B1A2B2A2B2 C:A1B1A2B2B1B2 D:A1A2B1B2A2B2正确答案 B10、阅读下面代码段, 给出以下代码的输出结果public class TestData {public String getValue () {String value = "";try{value = "test1";return value;}catch(Exception e){();}finally{value = "test2";}return value;}public static void main(String args[]){TestData test = new TestData();String a = ();}}2 C D.””正确答案 A二、改错题,如果有错误,请指出并修正。

1、interface A{int x = 0;}class B{int x =1;}class C extends B implements A {public void pX(){}public static void main(String[] args) {new C().pX();}}答案:错误。

在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import 和两个包时直接声明Date一样)。

对于父类的变量,可以用来明确,而接口的属性默认隐含为public static final.所以可以通过来明确。

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) {TestData test = new TestData();= new Data();(1)(2)= new Data();// (3)(4)= new Data();//(5)(6)= new Data();//(7)}}答案:(1),(5),(7)处错误:a21应该在定义或者TestData构造函数中初始化a2,a3是final类型的,不可以在使用中进行赋值3、abstract class Something {private abstract String doSomething ();}答案: 错。

abstract的methods不能以private修饰。

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

三、简答题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]中选择一个元素作为middle,该元素为支点把余下的元素分割为两段left 和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点递归地使用快速排序方法对left 进行排序递归地使用快速排序方法对right 进行排序所得结果为left+middle+right。

相关主题