最全的Java笔试题库之选择题篇.docx
《最全的Java笔试题库之选择题篇.docx》由会员分享,可在线阅读,更多相关《最全的Java笔试题库之选择题篇.docx(34页珍藏版)》请在冰点文库上搜索。
最全的Java笔试题库之选择题篇
最全的Java笔试题库之选择题篇
问题:
最全的Java笔试题库之选择题篇-总共234道【1~60】回答:
1.下面中哪两个可以在A的子类中使用:
()
classA{
protectedintmethod1(inta,intb){
return0;
}
}
A.publicintmethod1(inta,intb){return0;}
B.privateintmethod1(inta,intb){return0;}
C.privateintmethod1(inta,longb){return0;}
D.publicshortmethod1(inta,intb){return0;}
解答:
AC
主要考查子类重写父类的方法的原则
B,子类重写父类的方法,访问权限不能降低
C,属于重载
D,子类重写父类的方法返回值类型要相同或是父类方法返回值类型的子类
2.Abstractmethodcannotbestatic.TrueorFalse
ATrue
BFalse
解答:
A
抽象方法可以在子类中被重写,但是静态方法不能在子类中被重写,静态方法和静态属性与对象是无关的,只与类有关,这与abstract是矛盾的,所以abstract是不能被修饰为static,否则就失去了abstract的意义了
3.Whatwillbetheoutputwhenyoucompileandexecutethefollowingprogram.
classBase
{
voidtest(){
System.out.println(Base.test());
}
}
publicclassChildextendsBase{
voidtest(){
System.out.println(Child.test());
}
staticpublicvoidmain(String[]a){
ChildanObj=newChild();
BasebaseObj=(Base)anObj;
baseObj.test();
}
}
Selectmostappropriateanswer.
AChild.test()
Base.test()
BBase.test()
Child.test()
CBase.test()
DChild.test()
解答:
D
测试代码相当于:
BasebaseObj=newChild();父类的引用指向子类的实例,子类又重写了父类
的test方法,因此调用子类的test方法。
4.Whatwillbetheoutputwhenyoucompileandexecutethefollowingprogram.
classBase
{
staticvoidtest(){
System.out.println(Base.test());
}
}
publicclassChildextendsBase{
voidtest(){
System.out.println(Child.test());
Base.test();//Calltheparentmethod
}
staticpublicvoidmain(String[]a){
newChild().test();
}
}
Selectmostappropriateanswer.
AChild.test()
Base.test()
BChild.test()
Child.test()
CCompilationerror.Cannotoverrideastaticmethodbyaninstancemethod
DRuntimeerror.Cannotoverrideastaticmethodbyaninstancemethod
解答:
C
静态方法不能在子类中被重写
5.Whatwillbetheoutputwhenyoucompileandexecutethefollowingprogram.
publicclassBase{
privatevoidtest(){
System.out.println(6+6+(Result));
}
staticpublicvoidmain(String[]a){
newBase().test();
}
}
Selectmostappropriateanswer.
A66(Result)
B12(Result)
CRuntimeError.Incompatibletypefor+.Cantconvertaninttoastring.
DCompilationError.Incompatibletypefor+.Cantaddastringtoanint.
解答:
B
字符串与基本数据类型链接的问题,如果第一个是字符串那么后续就都按字符串处理,比如上边例子要是System.out.println((Result)+6+6);那么结果就是(Result)66,如果第一个和第二个。
。
。
第n个都是基本数据第n+1是字符串类型,那么前n个都按加法计算出结果在与字符串连接
6..Whatwillbetheoutputwhenyoucompileandexecutethefollowingprogram.Thesymbol’’meansspace.
1:
publicclassBase{
2:
3:
privatevoidtest(){
4:
5:
StringaStr=One
6:
StringbStr=aStr;
7:
aStr.toUpperCase();
8:
aStr.trim();
9:
System.out.println(["+aStr+","+bStr+"]);
7:
}
8:
9:
staticpublicvoidmain(String[]a){
10:
newBase().test();
11:
}
12:
}
Selectmostappropriateanswer.
A[ONE,One]
B[One,One]
C[ONE,One]
D[ONE,ONE]
E[One,One]
解答:
E
通过StringbStr=aStr;这句代码使bStr和aStr指向同一个地址空间,所以最后aStr和bStr的结果应该是一样,String类是定长字符串,调用一个字符串的方法以后会形成一个新的字符串。
7.下面关于变量及其范围的陈述哪些是不正确的():
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化
解答:
BC
由static修饰的变量称为类变量或是静态变量
方法加载的时候创建局部变量
8.下列关于修饰符混用的说法,错误的是():
A.abstract不能与final并列修饰同一个类
B.abstract类中可以有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的属性
解答D
:
静态方法中不能引用非静态的成员
9.执行完以下代码int[]x=newint[25];后,以下哪项说明是正确的():
A、x[24]为0
B、x[24]未定义
C、x[25]为0
D、x[0]为空
解答:
A
x属于引用类型,该引用类型的每一个成员是int类型,默认值为:
0
10.编译运行以下程序后,关于输出结果的说明正确的是():
publicclassConditional{
publicstaticvoidmain(Stringargs[]){
intx=4;
System.out.println(“valueis“+((x>4)99.9:
9));
}
}
A、输出结果为:
valueis99.99
B、输出结果为:
valueis9
C、输出结果为:
valueis9.0
D、编译错误
解答:
C
三目运算符中:
第二个表达式和第三个表达式中如果都为基本数据类型,整个表达式的运算结果
由容量高的决定。
99.9是double类型而9是int类型,double容量高。
11.关于以下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
解答:
C
自由块是类加载的时候就会被执行到的,自由块的执行顺序是按照在类中出现的先后顺序执行。
12.关于以下程序代码的说明正确的是():
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
解答:
D
静态变量是所有对象所共享的,所以上述代码中的几个对象操作是同一静态变量x,静态变量可以通过类名调用。
13.下列说法正确的有()
A.class中的constructor不可省略
B.constructor必须与class同名,但方法不能与class同名
C.constructor在一个对象被new时执行
D.一个class只能定义一个constructor
解答:
C
构造方法的作用是在实例化对象的时候给数据成员进行初始化
A.类中如果没有显示的给出构造方法,系统会提供一个无参构造方法
B.构造方法与类同名,类中可以有和类名相同的方法
D.构造方法可以重载
14.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法
B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法
D.实例方法可直接调用本类的类方法
解答:
D
A.实例方法不可直接调用超类的私有实例方法
B.实例方法不可直接调用超类的私有的类方法
C.要看访问权限
15.下列哪一种叙述是正确的()
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{}包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
解答:
D
abstract可以修饰方法和类,不能修饰属性。
抽象方法没有方法体,即没有大括号{}
16.下面代码的执行结果是?
importjava.util.*;
publicclassShortSet{
publicstaticvoidmain(Stringargs[])
{
Sets=newHashSet();
for(Shorti=0;i
{
s.add(i);
s.remove(i-1);
}
System.out.println(s.size());
}
}
A.1
B.100
C.ThrowsException
D.NoneoftheAbove
解答:
B
i是Short类型i-1是int类型,其包装类为Integer,所以s.remove(i-1);不能移除Set集合中Short类型对象。
17.链表具有的特点是:
(选择3项)
A、不必事先估计存储空间
B、可随机访问任一元素
C、插入删除不需要移动元素
D、所需空间与线性表长度成正比
解答:
ACD
A.采用动态存储分配,不会造成内存浪费和溢出。
B.不能随机访问,查找时要从头指针开始遍历
C.插入、删除时,只要找到对应前驱结点,修改指针即可,无需移动元素
D.需要用额外空间存储线性表的关系,存储密度小
18.Java语言中,String类的IndexOf()方法返回的类型是?
A、Int16B、Int32C、intD、long
解答:
C
indexOf方法的声明为:
publicintindexOf(intch)
在此对象表示的字符序列中第一次出现该字符的索引;如果未出现该字符,则返回-1。
19.以下关于面向对象概念的描述中,不正确的一项是()。
(选择1项)
A.在现实生活中,对象是指客观世界的实体
B.程序中的对象就是现实生活中的对象
C.在程序中,对象是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(class)
D.在程序中,对象是一组变量和相关方法的集合
解答:
B
20..执行下列代码后,哪个结论是正确的String[]s=newString[10];
A.s[9]为null;
B.s[10]为
C.s[0]为未定义
D.s.length为10
解答:
AD
s是引用类型,s中的每一个成员都是引用类型,即String类型,String类型默认的值为null
s数组的长度为10。
21.属性的可见性有。
(选择3项)
A.公有的
B.私有的
C.私有保护的
D.保护的
解答:
ABD
属性的可见性有四种:
公有的(public)保护的(protected)默认的私有的(private)
22..在字符串前面加上_____符号,则字符串中的转义字符将不被处理。
(选择1项)
A@
B\
C#
D%
解答:
B
23.下列代码哪行会出错:
(选择1项)
1)publicvoidmodify(){2)intI,j,k;3)I=100;4)while(I>0){5)j=I*2;6)System.out.println(Thevalueofjis+j);7)k=k+1;8)I9)}10)}
A.4
B.6
C.7
D.8
解答:
C
k没有初始化就使用了
24.对记录序列{314,298,508,123,486,145}按从小到大的顺序进行插入排序,经过两趟排序后的结果为:
(选择1项)
A{314,298,508,123,145,486}
B{298,314,508,123,486,145}
C{298,123,314,508,486,145}
D{123、298,314,508,486,145}
解答:
B
插入排序算法:
publicstaticvoidinjectionSort(int[]number){
//第一个元素作为一部分,对后面的部分进行循环
for(intj=1;j
inttmp=number[j];
inti=j1;
while(tmp
number[i+1]=number[i];
i
if(i==-1)
break;
}
number[i+1]=tmp;
}
}
25.栈是一种。
(选择1项)
A存取受限的线性结构
B存取不受限的线性结构
C存取受限的非线性结构
D存取不受限的非线性结构
解答:
A
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。
26.下列哪些语句关于内存回收的说明是正确的。
(选择1项)
A程序员必须创建一个线程来释放内存
B内存回收程序负责释放无用内存
C内存回收程序允许程序员直接释放内存
D内存回收程序可以在指定的时间释放内存对象
解答:
B
垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。
程序员唯一能做的就是通过调用System.gc方法来建议执行垃圾收集器,但其是否可以执行,什么时候执行却都是不可知的。
27.Whichmethodmustbedefinedbyaclassimplementingthejava.lang.Runnableinterface
A.voidrun()
B.publicvoidrun()
C.publicvoidstart()
D.voidrun(intpriority)
E.publicvoidrun(intpriority)
F.publicvoidstart(intpriority)
解答:
B
实现Runnable接口,接口中有一个抽象方法run,实现类中实现该方法。
28Given:
publicstaticvoidmain(String[]args){
Objectobj=newObject(){
publicinthashCode(){
return42;
}
};
System.out.println(obj.hashCode());
}
Whatistheresult
A.42
B.Anexceptionisthrownatruntime.
C.Compilationfailsbecauseofanerroronline12.
D.Compilationfailsbecauseofanerroronline16.
E.Compilationfailsbecauseofanerroronline17.
解答:
A
匿名内部类覆盖hashCode方法。
29WhichtwoarereservedwordsintheJavaprogramminglanguage(Choosetwo)
A.run
B.import
C.default
D.implements
解答:
BD
import导入包的保留字,implements实现接口的保留字。
30.WhichtwostatementsaretrueregardingthereturnvaluesofpropertywrittenhashCodeandequalsmethodsfromtwoinstancesofthesameclass(Choosetwo)
A.IfthehashCodevaluesaredifferent,theobjectsmightbeequal.
B.IfthehashCodevaluesarethesame,theobjectmustbeequal.
C.IfthehashCodevaluesarethesame,theobjectsmightbeequal.
D.IfthehashCodevaluesaredifferent,theobjectsmustbeunequal.
解答:
CD
先通过hashcode来判断某个对象是否存放某个桶里,但这个桶里可能有很多对象,那么我们就需要再通过equals来在这个桶里找到我们要的对象。
31.Whatisthenumericalrangeofachar
A.032767
B.065535
C.–256255
D.–3276832767
E.Rangeisplatformdependent.
解答:
B
在Java中,char是一个无符号16位类型,取值范围为0到65535。
32.Given:
publicclassTest{
privatestaticfloat[]f=newfloat[2];
publicstaticvoidmain(Stringargs[]){
System.out.println(“f[0]=“+f[0]);
}
}
Whatistheresult
A.f[0]=0
B.f[0]=0.0
C.Compilationfails.
D.Anexceptionisthrownatruntime.
解答:
B
33.Given:
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstr=NULL;
System.out.println(str);
}
}
Whatistheresult
A.NULL
B.Compilationfails.
C.Thecoderunswithnooutput.
D.Anexceptionisthrownatruntime.
解答:
B
null应该小写
34、Exhibit:
1.publicclassXimplementsRunnable{
2.privateintx;
3.privateinty;
4.publicstaticvoidmain(String[]args){
5.Xthat=newX();
6.(newThread(that)).start();
7.(newThread(that)).start();
8.}
9.publicsynchronizedvoidrun(){
10.for(;;){
11.x++;
12.y++;
13.System.out.println(“x=“+x+“,y=“+y);
14.}
15.}
16