java测试复盘7(2019.9.19)

java测试复盘

  1. 下列哪个类的声明是正确的? 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正确,声明了一个可以公有继承的抽象类。

  2. 执行如下代码后输出结果为( ) 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可以省略,

  1. 接口不能扩展(继承)多个接口。( ) B*
    A.正确
    B.错误
    解析:java类是单继承的, java接口可以多继承。

  2. 关于依赖注入,下列选项中说法错误的是()B*
    A.依赖注入能够独立开发各组件,然后根据组件间关系进行组装
    B.依赖注入使组件之间相互依赖,相互制约
    C.依赖注入提供使用接口编程
    D.依赖注入指对象在使用时动态注入
    解析:依赖注入目的是减少组件之间的耦合度,使开发变得简单。

  3. 下面关于垃圾收集的说法正确的是 D*
    A.一旦一个对象成为垃圾,就立刻被收集掉。
    B.对象空间被收集掉之后,会执行该对象的finalize方法
    C.finalize方法和C++的析构函数是完全一回事情
    D.一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此
    解析:对象空间被收集前执行finalize()方法,而不是对象空间被收集之后再执行,如果这样的话执行finalize()就没有意义了。

  4. 下面哪个选项正确创建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()

  5. 下列代码编译和运行的结果是:() 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。

  1. 关于以下程序代码的说明正确的是? 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

  1. 假定Base b = new Derived(); 调用执行b.methodOne(&#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值