java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx

上传人:b****5 文档编号:29853078 上传时间:2023-07-27 格式:DOCX 页数:18 大小:19.73KB
下载 相关 举报
java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx_第1页
第1页 / 共18页
java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx_第2页
第2页 / 共18页
java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx_第3页
第3页 / 共18页
java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx_第4页
第4页 / 共18页
java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx

《java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx》由会员分享,可在线阅读,更多相关《java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx(18页珍藏版)》请在冰豆网上搜索。

java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx

java认证习题第01章有答案版Ok该试题还有第02章

SCJP5.0习题第01章

问题1)当你试着编译运行下面的代码的时候,可能会发生什么?

abstractclassBase{

abstractpublicvoidmyfunc();

publicvoidanother(){

System.out.println("Anothermethod");

}

}

publicclassAbsextendsBase{

publicstaticvoidmain(Stringargv[]){

Absa=newAbs();

a.amethod();

}

publicvoidmyfunc(){

System.out.println("Myfunc");

}

publicvoidamethod(){

myfunc();

}

}

1)代码能够编译通过并且能够运行,输出结果为"MyFunc"

2)编译的时候报错,Base类有非抽象方法

3)能够编译,但是运行的时候报错,Base类有非抽象方法

4)编译时候报错,Base类中的方法myfunc没有方法体。

答案:

4)

抽象类可以有非抽象方法,但是任何扩展它的类必须实现所有的抽象方法(抽象子类可以不实现)。

问题2)当你试着编译运行下面的代码的时候,可能会发生什么?

publicclassMyMain{

publicstaticvoidmain(Stringargv){

System.out.println("Hellocruelworld");

}

}

1)编译的时候报错,main是保留字,不能在类中使用

2)代码能够编译通过并且能够运行,输出结果为"Hellocruelworld"

3)能够编译,但是运行的时候报错,没有定义构造方法

4)能够编译,但是运行的时候报错,main方法没有正确定义

答案:

4)

main的签名包含一个String参数,而不是string数组。

问题3)下面的哪个是Java修饰符?

1)public

2)private

3)friendly

4)transient

答案3)

1)public

2)private

4)transient

虽然有些文本使用friendly来表示可见性,但它不是一个Java保留字。

注意,测试很可能包含要求你从列表中识别Java关键字的问题。

问题4)当你试着编译运行下面的代码的时候,可能会发生什么?

classBase{

abstractpublicvoidmyfunc();

publicvoidanother(){

System.out.println("Anothermethod");

}

}

publicclassAbsextendsBase{

publicstaticvoidmain(Stringargv[]){

Absa=newAbs();

a.amethod();

}

publicvoidmyfunc(){

System.out.println("Myfunc");

}

publicvoidamethod(){

myfunc();

}

}

1)代码能够编译通过并且能够运行,输出结果为"MyFunc"

2)编译的时候报错,Base类没有被声明为abstract类

3)能够编译,但是运行的时候报错,Base类有非抽象方法

4)编译的时候报错,Base类中的myfunc方法没有方法体

答案:

2)

问题5)你为什么可能会定义一个native方法呢?

?

1)为了访问Java不能访问的硬件设备

2)为了定义一种新的数据类型,例如无符号整数。

3)编写为了提高性能而使用C/C++语言编写的优化代码。

4)为了克服方法的私有作用域的限制

答案:

1)和3)

虽然创建“纯正的Java”代码值得鼓励,但是为了允许平台的独立性,我们不能将此作为信仰,有很多时候,我们是需要native代码的。

问题6)当你试着编译运行下面的代码的时候,可能会发生什么?

classBase{

publicfinalvoidamethod(){

System.out.println("amethod");

}

}

publicclassFinextendsBase{

publicstaticvoidmain(Stringargv[]){

Baseb=newBase();

b.amethod();

}

}

1)编译时候报错,有final方法的类必须定义为final类。

2)编译时候报错,不能继承有final方法的类。

3)运行时候报错,Base类没有被定义为final类。

4)编译通过,运行的时候输出"amethod"。

答案:

4)

这段代码调用Base类中的amethod版本。

如果你在Fin中试着执行amethod的重写版本,你会得到一个编译时错误。

问题7)当你试着编译运行下面的代码的时候,可能会发生什么?

publicclassMod{

publicstaticvoidmain(Stringargv[]){

}

publicstaticnativevoidamethod();

}

1)编译时候报错:

native方法不能是static类型

2)编译时候报错,native方法必须有返回值

3)编译通过,但是运行时候报错,除非编写包含有可用的native方法amethod。

4)编译和运行时候都没有错。

答案:

4)

因为没有调用native方法,因此运行时不会发生错误。

问题8)当你试着编译运行下面的代码的时候,可能会发生什么?

privateclassBase{}

publicclassVis{

transientintiVal;

publicstaticvoidmain(Stringelephant[]){

}

}

1)编译时候报错:

Base类不能是private类型

2)编译时候报错:

整型变量不是使用transient

3)编译时候报错:

transient不是一个数据类型

4)编译时候报错:

main方法的定义不正确

答案:

1)

一个Base类这样的顶级类不能定义为private。

问题9)当你试着编译运行下面的两个放在同一个目录的文件的时候,可能会发生什么?

//FileP1.java

packageMyPackage;

classP1{

voidafancymethod(){

System.out.println("Whatafancymethod");

}

}

//FileP2.java

publicclassP2extendsP1{

afancymethod();

}

1)都能编译,运行的时候P2输出"Whatafancymethod"

2)都不能编译

3)都能编译,但是P2在运行的时候报错。

4)P1编译通过,P2编译的时候报错

答案:

4)

虽然P2在P1的同一个路径下,但是P1用package语句声明了,所以对于P2不可见。

问题10)下面的哪一个声明是合法的?

1)publicprotectedamethod(inti)

2)publicvoidamethod(inti)

3)publicvoidamethod(void)

4)voidpublicamethod(inti)

答案:

2)publicvoidamethod(inti)

选项4不合法是因为方法的返回类型必须紧跟着出现在方法名之前。

二、构造方法

问题1)给定下面的类定义

classBase{

Base(inti){}

}

classDefConextendsBase{

DefCon(inti){

//XX

}

}

如果将标记//XX的地方替换为下面的行,哪一行是独立合法的?

1)super();

2)this();

3)this(99);

4)super(99);

答案:

4)super(99);

由于类Base定义了一个构造方法,编译器将不会插入默认的0参数的构造方法。

因此,super()

的调用会引起一个错误。

一个this()调用试着在当前类中调用一个不存在的0参数构造方法,

this(99)调用会引起一个循环引用并将引起一个编译时错误。

问题2)给定下面的类

publicclassCrowle{

publicstaticvoidmain(Stringargv[]){

Crowlec=newCrowle();

}

Crowle(){

System.out.println("GreetingsfromCrowle");

}

}

构造方法会返回哪一种数据类型?

1)null

2)integer

3)String

4)nodatatypeisreturned

答案:

4)nodatatypeisreturned

问题3)当你试着编译运行下面的代码的时候,可能会发生什么?

publicclassCrowle{

publicstaticvoidmain(Stringargv[]){

Crowlec=newCrowle();

}

voidCrowle(){

System.out.println("GreetingsfromCrowle");

}

}

1)编译通过输出"GreetingsfromCrowle"

2)编译错误,构造方法不应该有返回值

3)编译通过输出"void"

4)编译通过,但是运行的时候不输出任何内容

答案:

4)

方法Crowle因为有一个返回类型而不是构造方法。

因此,类将会编译并且在运行时方法Crowle不会调用。

问题4)当你试着编译运行下面的类的时候,可能会发生什么?

classBase{

Base(inti){

System.out.println("Base");

}

}

classSevernextendsBase{

publicstaticvoidmain(Stringargv[]){

Severns=newSevern();

}

voidSevern(){

System.out.println("Severn");

}

}

1)编译通过输出"Severn"

2)编译错误

3)编译通过,运行时候没有输出

4)编译通过,运行输出"Base"

答案:

2)

问题5)下面的哪一句陈述是正确的?

1)默认的构造方法的返回值类型为void

2)默认的构造方法有一个void类型的参数

3)默认的构造方法没有参数

4)如果类中有其他的构造方法,就不会创建默认的构造方法

答案:

3)和4)

三、定义数组

问题1)怎样通过一个语句改变数组大小同时保持原值不变?

1)使用Array类的setSize方法

2)使用Util.setSize(intiNewSize)

3)使用size()操作符

4)以上都不是

答案:

4)

你不能改变一个数组的大小。

你需要创建一个不同大小的临时数组,然后将原数组中的内容

放进去。

Java支持能够改变大小的类的容器,例如Vector或者collection类的一个成员。

问题2)你想用下面的代码查找数组最后一个元素的值,当你编译并运行它的时候,会发

生什么?

publicclassMyAr{

publicstaticvoidmain(Stringargv[]){

int[]i=newint[5];

System.out.println(i[5]);

}

}

1)编译通过输出0

2)编译通过输出null

3)编译通过,产生运行时期的异常

4)编译错误

答案:

3)

因为数组从0开始索引,并且最后一个元素是i[4]而不是i[5]。

问题3)判断数组重元素的个数,下面那个正确?

1)myarray.length();

2)myarray.length;

3)myarray.size

4)myarray.size();

答案:

2)myarray.length;

问题4)你的老板为了你写出了HelloWorld而很高兴地为你升职了,现在她给你分配了一

个新任务,去做一个踢踏舞游戏)。

你认为你需要一个多维数组,下面哪一个能做这个工作?

1)inti=newint[3][3];

2)int[]i=newint[3][3];

3)int[][]i=newint[3][3];

4)inti[3][3]=newint[][];

答案:

3)int[][]i=newint[3][3];

问题5)

你希望找到一个更优雅的方式给你的数组赋值而不使用for循环语句,下面的哪一个能做

到?

1)

myArray{

[1]="One";

[2]="Two";

[3]="Three";

}

2)Strings[5]=newString[]{"Zero","One","Two","Three","Four"};

3)Strings[]=newString[]{"Zero","One","Two","Three","Four"};

4)Strings[]=newString[]={"Zero","One","Two","Three","Four"};

答案:

3)Strings[]=newString[]{"Zero","One","Two","Three","Four"};

问题6)当你试着编译运行下面的代码的时候,可能会发生什么?

publicclassArdec{

publicstaticvoidmain(Stringargv[]){

Ardecad=newArdec();

ad.amethod();

}

publicvoidamethod(){

intia1[]={1,2,3};

int[]ia2={1,2,3};

intia3[]=newint[]{1,2,3};

System.out.print(ia3.length);

}

}

1)编译错误,ia3定义不正确

2)编译错误,数组没有length成员变量

3)编译通过但是没有输出

4)编译通过输出3

答案)

4)Compilationandoutputof3

所有的数组的声明都是正确的。

如果你觉得不太可能,可以自己编译这段代码。

11.给定下面的代码

1.interfaceBase{

2.booleanm1();

3.bytem2(shorts);

4.}

下面的哪个代码能够编译(可以多选)

A.interfaceBase2implementsBase{}

B.abstractclassClass2extendsBase{

publicbooleanm1(){returntrue;}}

C.abstractclassClass2implementsBase{}

D.abstractclassClass2implementsBase{

publicbooleanm1(){return(true);}}

E.classClass2implementsBase{

booleanm1(){returnfalse;}

bytem2(shorts){return42;}}

答案:

C和D

C:

抽象类可以不实现接口中定义的所有方法

D:

方法实现正确

错误:

A:

接口之间使用继承

B:

类要实现接口

E:

类实现接口的时候不能缩写访问控制符,接口中默认是public。

12.下面的哪个是能够编译通过的抽象类(可以多选)

A.publicabstractclassCanine{publicBarkspeak();}

B.publicabstractclassCanine{publicBarkspeak(){}}

C.publicclassCanine{publicabstractBarkspeak();}

D.publicclassCanineabstract{publicabstractBarkspeak();}

Answer:

正确:

B

错误:

A:

抽象方法使用abstract修饰

C:

由抽象方法的类必须是抽象类

D:

关键字abstract必须放在类名之前

13.哪个正确(可以多选)

A.当且仅当X是类,Y是接口,"XextendsY"才正确。

B.当且仅当X是接口,Y是类,"XextendsY"才正确。

C.X和Y都是接口,或者X和Y都是类,"XextendsY"是正确的。

D.不管X和Y是类还是接口,"XextendsY"都是正确的。

正确答案:

C

14.哪个声明正确(可以多选)

A.int$x;

B.int123;

C.int_123;

D.int#dim;

E.int%percent;

F.int*divide;

G.intcentral_sales_region_Summer_2005_gross_sales;

Answer:

正确:

A,C,和G

15.哪个方法名字遵循JavaBeans标准(可以多选)

A.addSize

B.getCust

C.deleteRep

D.isColorado

E.putDimensions

Answer:

正确:

B和D

合法的名字:

set、get、is

16.给定:

1.classVoop{

2.publicstaticvoidmain(String[]args){

3.doStuff

(1);

4.doStuff(1,2);

5.}

6.//在此处插入代码

7.}

下面的代码,哪个放在第6行可以编译(可以多选)

A.staticvoiddoStuff(int...doArgs){}

B.staticvoiddoStuff(int[]doArgs){}

C.staticvoiddoStuff(intdoArgs...){}

D.staticvoiddoStuff(int...doArgs,inty){}

E.staticvoiddoStuff(intx,int...doArgs){}

Answer:

正确:

A和E.

注意:

变长参数必须是方法的最后一个参数。

17.下面哪个是合法的声明(可以多选)

A.shortx[];

B.short[]y;

C.short[5]x2;

D.shortz2[5];

E.short[]z[][];

F.short[]y2=[5];

Answer:

正确:

A,B,和E

E是3维数组

18.给定:

1.enumAnimals{

2.DOG("woof"),CAT("meow"),FISH("burble");

3.Stringsound;

4.Animals(Strings){sound=s;}

5.}

6.classTestEnum{

7.staticAnimalsa;

8.publicstaticvoidmain(String[]args){

9.System.out.println(a.DOG.sound+""+a.FISH.sound);

10.}

11.}

结果是?

>

A.woofburble

B.多个编译错误

C.第2行编译错误

D.第3行编译错误

E.第4行编译错误

F.第9行编译错误

Answer:

正确:

Aiscorrect;

注意:

枚举类型可以有构造方法和成员变量

19.

给定:

1.enumA{A}

2.classE2{

3.enumB{B}

4.voidC(){

5.enumD{D}

6.}

7.}

哪个语句正确(可以多选)

A.能够编译.

B.删除第1行之后可以编译

C.删除第3行之后可以编译

D.删除第5行之后可以编译

E.删除第1行和第3行之后可以编译

F.删除第1、3、5行之后可以编译

Answer:

正确:

D和F

枚举不能在方法内部声明。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1