14.以下 _____ 不是 Object 类的方法 D
A clone()
B finalize()
C toString()
D hasNext()
解析:
hasNext()方法是迭代器中的
15.java 语言使用的字符码集是 D
A ASCII
B BCD
C DCB
D Unicode
16.Test.main() 函数执行后的输出是(D)
public class Test {
public static void main(String [] args){
System.out.println(new B().getValue());
}
static class A{
protected int value;
public A(int v) {
setValue(v);
}
public void setValue(int value){
this.value = value;
}
public int getValue(){
try{
value++;
return value;
} catch(Exception e){
System.out.println(e.toString());
} finally {
this.setValue(value);
System.out.println(value);
}
return value;
}
}
static class B extends A{
public B() {
super(5);
setValue(getValue() - 3);
}
public void setValue(int value){
super.setValue(2 * value);
}
}
}
A 11 17 34
B 22 74 74
C 6 7 7
D 22 34 17
解析:这道题有点绕而且考察了一些基础知识点,如果有时间大家可以在电脑上加上断言一步一步进行测试。我是一步一步测了一遍在这里就图解一下。
如图所示:
图一:执行new B()中的super(5)
图二:执行setValue(getValue() - 3)中的getValue()
图三:执行31行setValue(getValue() - 3),
图四:执行new B().getValue()中的getValue()方法,和打印语句
所以结果就是22 34 17
这里需要注意的小知识点是:
子类继承父类,在调用方法中使用的是谁的对象调用的就是谁的方法,本题中全程只有new一个对象,那就是B的对象,所以一直使用的是B的对象,那么调用的方法优先去B类中查找,如果B类中没有就去他的父类A中查找
try;catch;finally中如果try中返回了某一个值,finally中也返回一个值那么finally中的返回值会覆盖try中的返回值,如果fianlil中没有返回值就直接返回try中的返回值;这个原因是因为try中执行return语句是不会真的返回,而是将返回值先保存在临时栈中,去执行finally语句,如果finally语句中也有return则和try中一样保存到临时栈中,最后从栈顶返回一个元素,所以返回的就是finally中的return;反之如果finally中没有return则返回栈顶元素返回的就是try中的return
17.如何跳出Array的forEach循环?( A)
A break
B return true
C return false
D 以上都不是
解析:可以使用break,return;只有boolean型返回才带有true/false
18.如下Java语句
double x= 3.0;
int y=5;
x/=--y;
执行后, x的值是(D)
A 3
B 0.6
C 0.4
D 0.75
解析:这道题和Java运算符优先级有关
19.
public class Test{
static int cnt = 6;
static{
cnt += 9;
}
public static void main(String[] args){
System.out.println(“cnt =” + cnt);
}
static{
cnt /=3;
};
}
cnt的值是 A
A.cnt=5
B.cnt=2
C.cnt=3
D.cnt=6
解析:这道题的纠结点在于静态变量和静态初始化块的执行顺序,这两个是按照代码的顺序执行的
20.JUnit主要用来完成什么 D
A.发送HTTP请求
B.建立TCP连接
C.集成测试
D.单元测试
解析:JUnit是一个Java语言的单元测试框架