java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx
- 文档编号:29853078
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:18
- 大小:19.73KB
java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx
《java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx》由会员分享,可在线阅读,更多相关《java认证 习题 第01章 有答案版Ok 该试题还有第02章.docx(18页珍藏版)》请在冰豆网上搜索。
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 枚举不能在方法内部声明。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java认证 习题 第01章 有答案版Ok 该试题还有第02章 java 认证 01 答案 Ok 试题 还有 02
![提示](https://static.bdocx.com/images/bang_tan.gif)