中软java面试题及答案.docx
《中软java面试题及答案.docx》由会员分享,可在线阅读,更多相关《中软java面试题及答案.docx(11页珍藏版)》请在冰豆网上搜索。
中软java面试题及答案
Heartache?
Heartache?
Hearttired?
Heartisdead?
Doyouwantmetotellyou?
AllofthesehavebeenexperiencedwhenIlikeyou,okay.(WORD文档/A4打印/可编辑/页眉可删)
中软java面试题及答案
一、判断题(30分)
1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。
2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4.类及其属性、方法可以同时有一个以上的修饰符来修饰。
5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点
6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7.Final类中的属性和方法都必须被final修饰符修饰。
8.最终类不能派生子类,最终方法不能被覆盖。
9.子类要调用父类的方法,必须使用super关键字。
10.一个Java类可以有多个父类。
11.如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。
12.在java集合中,Vector和HashMap是线程安全的。
13.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
14.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
15.用“+”可以实现字符串的拼接,用-可以从一个字符串中去除一个字符子串。
二、选择题(30分)
1、关于垃圾收集的哪些叙述是正确的():
A.程序开发者必须自己创建一个线程进行内存释放的工作
B.垃圾收集允许程序开发者明确指定并立即释放该内存
C.垃圾收集将检查并释放不再使用的内存
D.垃圾收集能够在期望的时间释放被java对象使用的内存
2、下面的哪些赋值语句是不正确的():
A.floatf=11.1;
B.doubled=5.3E12;
C.doubled=3.14159;
D.doubled=3.14D;
3、下面关于变量及其范围的陈述哪些是不正确的():
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的`局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化
4、下列关于修饰符混用的说法,错误的是():
A.abstract不能与final并列修饰同一个类
B.abstract类中不可以有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的属性
5、容器Panel和Applet缺省使用的布局编辑策略是():
A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout
6、以下标识符中哪项是不合法的():
A、BigMeaninglessNameB、$int
C、1stD、$1
7、main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的():
A、publicstaticvoidmain()
B、publicstaticvoidmain(String[]args)
C、publicstaticintmain(String[]arg)
D、publicvoidmain(Stringarg[])
8、执行完以下代码int[]x=newint[25];后,以下哪项说明是正确的():
A、x[24]为0
B、x[24]未定义
C、x[25]为0
D、x[0]为空
9、以下代码段执行后的输出结果为():
intx=3;inty=10;
System.out.println(y%x);
A、0
B、1
C、2
D、3
10、以下哪个表达式是不合法的():
A、Stringx=”Hello”;inty=9;x+=y;
B、Stringx=”Hello”;inty=9;if(x==y){}
C、Stringx=”Hello”;inty=9;x=x+y;
D、Stringx=null;inty=(x!
=null)(x.length()0)?
x.length:
0
11、编译运行以下程序后,关于输出结果的说明正确的是():
publicclassConditional{
publicstaticvoidmain(Stringargs[]){
intx=4;
System.out.println(“valueis“+((x4)?
99.9:
9));
}
}
A、输出结果为:
valueis99.99
B、输出结果为:
valueis9
C、输出结果为:
valueis9.0
D、编译错误
12、以下声明合法的是():
A、defaultStrings;
B、publicfinalstaticnativeintw()
C、abstractdoubled;
D、abstractfinaldoublehyperbolicCosine()
13、关于以下application的说明,正确的是():
1.classStaticStuff
2.{
3.staticintx=10;
4.static{x+=5;}
5.publicstaticvoidmain(Stringargs[])
6.{
7.System.out.println(“x=”+x);
8.}
9.static{x/=3;}
10.}
A、4行与9行不能通过编译,因为缺少方法名和返回类型
B、9行不能通过编译,因为只能有一个静态初始化器
C、编译通过,执行结果为:
x=5
D、编译通过,执行结果为:
x=3
14、关于以下程序代码的说明正确的是():
1.classHasStatic{
2.privatestaticintx=100;
3.publicstaticvoidmain(Stringargs[]){
4.HasStatichs1=newHasStatic();
5.hs1.x++;
6.HasStatichs2=newHasStatic();
7.hs2.x++;
8.hs1=newHasStatic();
9.hs1.x++;
10.HasStatic.x--;
11.System.out.println(“x=”+x);
12.}
13.}
A、5行不能通过编译,因为引用了私有静态变量
B、10行不能通过编译,因为x是私有静态变量
C、程序通过编译,输出结果为:
x=103
D、程序通过编译,输出结果为:
x=102
15、以下选项中循环结构合法的是():
A、while(inti7){
i++;
System.out.println(“iis“+i);
}
B、intj=3;
while(j){
System.out.println(“jis“+j);
}
C、intj=0;
for(intk=0;j+k!
=10;j++,k++){
System.out.println(“jis“+j+“kis”+k);
}
D、intj=0;
do{
System.out.println(“jis“+j++);
if(j==3){continueloop;}
}while(j10);
三、简答题(40分)
1.写出下列程序的运行结果
publicclassCat
{
voidmi()throwsNullPointerException
{
System.out.println(“Catmimi..“);
}
}
publicclassSmallCatextendsCat
{inti=8;
voidmi()throwsException
{
System.out.println(“SmallCatmimi..“);
}
publicstaticvoidmain(String[]a)throwsException
{
Catcat=newSmallCat();
cat.mi();
}
}
写出下列程序的运行结果
interf-acePlayable{
voidplay();
}
interf-aceBounceable{
voidplay();
}
interf-aceRollableextendsPlayable,Bounceable{
Ballball=newBall(“PingPang”);
}
classBallimplementsRollable{
privateStringname;
publicStringgetName(){
returnname;
}
publicBall(Stringname){
this.name=name;
}
publicvoidplay(){
ball=newBall(“Football”);
System.out.println(ball.getName());
}
}
写出下列程序的运行结果
classValue{
publicinti=15;
}
publicclassTest{
publicstaticvoidmain(Stringargv[]){
Testt=newTest();
t.first();
publicvoidfirst(){
inti=5;
Valuev=newValue();
v.i=25;
second(v,i);
System.out.println(v.i);
publicvoidsecond(Valuev,inti){
i=0;
v.i=20;
Valueval=newValue();
v=val;
System.out.println(v.i+””+i);
写出下列程序的运行结果
classMyThreadextendsThread{
publicvoidrun(){
System.out.println(“MyThread:
run()”);
publicvoidstart(){
System.out.println(“MyThread:
start()”);
classMyRunnableimplementsRunnable{
publicvoidrun(){
System.out.println(“MyRunnable:
run()”);
publicvoidstart(){
System.out.println(“MyRunnable:
start()”);
publicclassMyTest{
publicstaticvoidmain(Stringargs[]){
MyThreadmyThread=newMyThread();
MyRunnablemyRunnable=newMyRunnable();
Threadthread=newThread(myRunnable);
myThread.start();
thread.start();
2.1~100共一百个自然数,放入一个99个元素的数组a[99],要求用java语言编写出一个尽量简单的程序,找出没有被放入数组的这个数。
3.简要叙述一下什么是数据库连接池,有何作用。
4.简要描述Struts,spring,hibernate?
中软java面试题及答案
1.谈谈final,finally,finalize的区别。
2.AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interf-ace(接口)?
3.StaticNestedClass和InnerClass的不同,说得越多越好(面试题有的很笼统)。
4.和的区别。
5.HashMap和Hashtable的区别。
llection和Collections的区别。
7.什么时候用assert。
8.GC是什么?
为什么要有GC?
9.Strings=newString(“xyz”);创建了几个StringObject?
10.Math.round(11.5)等於多少?
Math.round(-11.5)等於多少?
11.shorts1=1;s1=s1+1;有什么错?
shorts1=1;s1+=1;有什么错?
12.sleep()和wait()有什么区别?
13.数组有没有length()这个方法?
String有没有length()这个方法?
14.Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
15.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
是用==还是equals()?
它们有何区别?
16.给我一个你最常见到的runtimeexception。
17.error和exception有什么区别?
18.List,Set,Map是否继承自Collection接口?
19.abstractclass和interf-ace有什么区别?
20.接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类(concreteclass)?
21.构造器Constructor是否可被override?
22.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
23.编程题:
写一个Singleton出来。