java测试复盘
-
下列哪个类的声明是正确的? D*
A.abstract final class HI{}
B.abstract private move(){}
C.protected private number;
D.public abstract class Car{}
解析:选项A错误,abstract与final不能同时出现在类声明中;选项B错误,类不能声明为private,缺少Class关键字;选项C错误,类不能声明为protected和private两种属性,且不以“;”结尾,也缺少Class关键字;选项D正确,声明了一个可以公有继承的抽象类。 -
执行如下代码后输出结果为( ) C*
public class Test {
public static void main(String[] args) {
System.out.println("return value of getValue(): " + getValue());
}
public static int getValue() {
int i = 1;
try {
i = 4;
} finally{
i++;
return i;
}
}
}
A.return value of getValue(): 1
B.return value of getValue(): 4
C.return value of getValue(): 5
D.其他几项都不对
解析:c.try只适合处理运行时异常,try+catch适合处理运行时异常+普通异常。也就是说,如果你只用try去处理普通异常却不加以catch处理,编译是通不过的,因为编译器硬性规定,普通异常如果选择捕获,则必须用catch显示声明以便进一步处理。而运行时异常在编译时没有如此规定,所以catch可以省略,
-
接口不能扩展(继承)多个接口。( ) B*
A.正确
B.错误
解析:java类是单继承的, java接口可以多继承。 -
关于依赖注入,下列选项中说法错误的是()B*
A.依赖注入能够独立开发各组件,然后根据组件间关系进行组装
B.依赖注入使组件之间相互依赖,相互制约
C.依赖注入提供使用接口编程
D.依赖注入指对象在使用时动态注入
解析:依赖注入目的是减少组件之间的耦合度,使开发变得简单。 -
下面关于垃圾收集的说法正确的是 D*
A.一旦一个对象成为垃圾,就立刻被收集掉。
B.对象空间被收集掉之后,会执行该对象的finalize方法
C.finalize方法和C++的析构函数是完全一回事情
D.一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此
解析:对象空间被收集前执行finalize()方法,而不是对象空间被收集之后再执行,如果这样的话执行finalize()就没有意义了。 -
下面哪个选项正确创建socket连接? B*
A.Socket s = new Socket(8080);
B.Socket s = new Socket(“192.168.1.1”,8080)
C.SocketServer s = new Socket(8080);
D.Socket s = new SocketServer(“192.168.1.1”,8080)
解析:这题主要是区别号客户端和服务端的创建方法
客户端对象:Socket s = new Socket(“127.0.0.1”,6666);
服务端对象:ServerSocket ss = new ServerSocket(6666);
监听服务器的连接:
s=ss.accept() -
下列代码编译和运行的结果是:() C*
public class Threads4{
public static void main(String[] args){
new Threads4().go();
}
public void go(){
Runnable r=new Runnable(){
public void run(){
System.out.print("foo");
}
};
Thread t=new Thread(r);
t.start();
}
}
A.编译错误
B.抛出运行时异常
C.输出:foo
D.代码正常运行,但是无输出
解析:调用go方法,go方法内实现多线程打印foo。
- 关于以下程序代码的说明正确的是? D*
public class HasStatic{
private static int x=100;
public static void main(String args[]){
HasStatic hs1=new HasStatic();
hs1.x++;
HasStatic hs2=new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x--;
System.out.println("x="+x);
}
}
A.程序通过编译,输出结果为:x=103
B.10行不能通过编译,因为x是私有静态变量
C.5行不能通过编译,因为引用了私有静态变量
D.程序通过编译,输出结果为:x=102
解析:首先要了解static的意思。
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
static变量在第一次使用的时候初始化,但只会有一份成员对象。
所以这里不仅可以调用,而且每一次调用都确实修改了x的值,也就是变化情况是这样的:
x=101
x=102
x=103
x=102
- 假定Base b = new Derived(); 调用执行b.methodOne(&#