java测试题(含有答案与解析)
1..Java语⾔与其他语⾔相⽐,独有的特点是(C)
A.⾯对对象
B.多线程
java接口有没有构造方法C.平台⽆关
D.⽹络编程
2.静态内部类不可以直接访问外围类的⾮静态数据,⽽⾮静态内部类可以直接访问外围类的数据,包括私有数据。 答案:正确。
解释:静态内部类可以间接访问外围类的⾮静态数据(通过实例化外部类的对象,再⽤对象名了调⽤)
3.有以下程序⽚段,下列哪个选项不能插⼊到第⼀⾏ 。(A)
1.`
2.public class A{
3.//do sth
4.}`
A. public class MainClass{ }
B. package mine;
C. class ANotherClass{ }
D. import java.util.*;
解析:⼀个源程序只能有⼀个public类存在,且类名要与⽂件名相同。Java程序是从main⽅法开始执⾏的,⽽public类为加载器提供了⼊⼝,然后到public类中的main⽅法开始执⾏,⼀个源程序如果存在多个public类,程序将不知道该从哪⾥执⾏。
注意:内部类可以是public的,因为内部类是作为外部类的成员存在的
4.对于构造⽅法,下列叙述正确的是(ACD)
A.构造⽅法的优先级⼀般⽐代码块低
B.构造⽅法的返回值只能是void型
C.构造⽅法的主要作⽤是完成对类的对象的初始化⼯作
D.⼀般在创建对象新对象时,系统会⾃动调⽤构造⽅法
5.关于下⾯代码,运⾏结果是:
编译错误。
解释:x为⾮静态成员,⽽main⽅法属于静态⽅法,静态⽅法不能直接调⽤⾮静态成员。
6.下列不能做switch()的参数类型是(C)
A.int
B.字符串
C.浮点型
7.下列说法错误的是(B)
A.类只能继承⼀个⽗类,但是可以实现多个接⼝
B.抽象类⾃⾝可以定义成员⽽接⼝不可以
C.抽象类和接⼝都不能被实例化(忽略匿名内部类)
D.⼀个类可以有多个⽗类和多个接⼝
解释:B选项中,java 接⼝中可以定义成员变量,且必须是 static final的。D选项中,⼀个类只能有⼀个⽗类
7.dk1.8版本之前的前提下,接⼝和抽象类描述正确的有(B,C)
A. 抽象类没有构造函数
B. 接⼝没有构造函数
C. 抽象类不允许多继承
D. 接⼝中的⽅法可以有⽅法体
8.以下Java程序运⾏的结果是(A)
A. 1true
B. 2true
C. 1false
D. 2false
解释:第三⾏创建了Integer对象var1,并且实例化了。第四⾏创建var2对象,并将其地址传给了var2,所以“var1==var2”。⽽第五⾏调⽤了domething(var2)⽅法给对象integer对象实例化,但是这并不影响var1与var2。
9下⾯的代码输出的结果为正确答案
答案:5
解释:当程序执⾏时,会先加载静态属性(cnt=6),然后按照先后顺序加载两个静态代码块
10.Java类Demo中存在⽅法func1、func2、func3和func4,请问该⽅法中,哪些是不合法
答案:func1、func4
解释:func1⽅法中没有写放回结果。func4⽅法中将double转换成float必须是强制类型转换。
11.下列说法正确的是 B
A. 在类⽅法中可⽤this来调⽤本类的类⽅法
B. 在类⽅法中调⽤本类的类⽅法可直接调⽤
C. 在类⽅法中只能调⽤本类的类⽅法
D.在类⽅法中绝对不能调⽤实例⽅法
解释:A选项错误,直接调⽤即可。C、D是错误的,⽐如main⽅法就可以调⽤实例⽅法,只是不能够直接调⽤,需要借⽤“对象.”。
12.下⾯有关Java的instanceof、三⽬运算符、&、&&说法正确的是(ABCD)
A. instanceof 可⽤来判断某个实例变量是否属于某种类的类型。
B. "?:" 三⽬运算符
C. &在逻辑运算中是⾮短路逻辑与
D. && 逻辑运算:逻辑与
13不能⽤来修饰interface的有(ACD )
A. private
B. public
C. protected
D. static
解释:接⼝是⼀种特殊的抽象类,接⼝中的⽅法全部是抽象⽅法(但其前的abstract可以省略),所以抽象类中的抽象⽅法不能⽤的访问修饰符这⾥也不能⽤。⽽且protected访问修饰符也不能使⽤,因为接⼝可以让所有的类去实现(⾮继承),不只是其⼦类,但是要⽤public 去修饰
14.对于下列代码: 第10⾏语句将调⽤哪⾏语句?
解释:
调⽤的是第7⾏的语句。第9⾏相当于是向上转型,⽗类的引⽤指向⼦类的实例,所以,第10⾏运⾏调⽤的⼦类重写⽗类的⽅法
15.对于下列代码:
下述哪些⽅法可以加⼊类Child? (C)
A. int addValue( int a, int b ){// }
B. public void addValue (int a, int b ){// }
C. public int addValue( int a ){// }
D. public int addValue( int a, int b )throws Exception {//}
解释:此题考的内容为⽅法的重写与⽅法的重写。
⽅法重写的语法规则: 返回值类型、⽅法名、参数类型、顺序、个数都要与⽗类继承的⽅法相同。
⽅法重载判断原则:
“两同⼀不同”:
两同:同类中(也可以是⽗⼦类中);⽅法名相同。
⼀不同:⽅法参数列表不同(参数类型、参数个数、参数顺序);
只要参数类型、参数个数、参数顺序有⼀个不同、参数列表就不同。
⽅法重载与返回值类型⽆关,只是⼀般要求返回值类型⼀致。
A选项错误错误,考的是⽅法的重写但是⼦类的访问控制权修饰符⼩于⽗类的。B选项错误,考的是⽅法的重写,⼦类返回值与⽗类的返回值不同。D选项错误,跑出来异常。
16.运⾏下列程序,会产⽣什么结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论