Java面试题(牛客)

来源:互联网 发布:淘宝的惠威喇叭怎么样 编辑:程序博客网 时间:2024/05/20 11:19
1.

第一个错误是 wait() 方法要以 try/catch 包覆,或是掷出 InterruptedException 才行   
因此答案就是因为缺少例外捕捉的   InterruptedException

第二个错误的地方是, synchronized 的目标与 wait() 方法的物件不相同,会有 IllegalMonitorStateException ,不过 InterruptedException 会先出现,所以这不是答案

最后正确的程式码应该是这样:   
     void waitForSignal(){

Object obj= new Object();

         synchronized (obj){

             try {

obj.wait();

} catch (InterruptedExceptione) {

e.printStackTrace();

}

obj.notify();

}

}


2.

a选项linkedlist类是实现了List接口,而不是继承
b选项AbstractSet类实现Set接口
c选项HashSet继承 AbstractSet类,同时也实现set

3.
1:创建时的区别:  

    Statementstatement = conn.createStatement();
   PreparedStatement preStatement = conn.prepareStatement(sql);
   执行的时候: 
    ResultSetrSet = statement.executeQuery(sql);
    ResultSetpSet = preStatement.executeQuery();

由上可以看出,PreparedStatement有预编译的过程,已经绑定sql,之后无论执行多少遍,都不会再去进行编译,

而 statement 不同,如果执行多变,则相应的就要编译多少遍sql,所以从这点看,preStatement 的效率会比Statement要高一些


4.
含有抽象方法的类(包括直接定义了抽象方法;继承一个抽象父类,但没有完全实现父类包含的抽象方法;实现一个接口,但没有完全实现接口包含的抽象方法)只能被定义成抽象类。
A:用于修饰抽象类或者抽象方法
B:final修饰的类不能被继承
C:抽象类不能被实例化,无法使用new关键字调用抽象类的构造器创建抽象类的实例,即使抽象类不包含抽象方法,也不能被实例化。

5.

0 0
原创粉丝点击