菜鸟面试题收集

来源:互联网 发布:java 下载器 编辑:程序博客网 时间:2024/05/16 11:00

1.谈谈final, finally, finalize的区别。

final:修饰符(关键字)如果一个类被final修饰,意味着他不能再派生出新的子类,不能作为父类被继承。因此一个类不能即被声明成abstract又被声明成final。将变量或者方法声明成final,可以保证他在使用中不被改变。被声明为final的变量必须在声明时给定初始值,在以后的引用中只能读取,不能修改。被声明的方法也只能使用不能重载。

finally:在异常处理时提供finally块无论是否发生异常都会执行其中的代码,一般用来执行任何的清理以及资源的释放。

finalize:方法名,Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。 finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。


2.HashMap和HashTable的区别

HashMap是Map接口的一个实现类;

HashMap不是线程安全的, HashTable是线程安全的一个Collection。

HashMap是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。

HashMap允许null key和null value,而hashtable不允许。

3. 以下(D)不是Object类的方法
A) clone()
B) finalize()
C) toString()
D) hasNext()


4. 以下程序运行结果是(D)
public class Test {
public int div(int a, int b) {
try {
return a / b;
}catch(Exception e){
System.out.println(“Exception”);
}catch(NullPointerException e){
System.out.println(“ArithmeticException”);
}
catch (ArithmeticException e) {
System.out.println(“ArithmeticException”);
} finally {
System.out.println(“finally”);
}
return 0;
}
public static void main(String[] args) {
Test demo = new Test();
System.out.println(“商是:” + demo.div(9, 0));
}
}
A) Exception finally 商是:0
B) ArithmeticException finally 商是:0
C) finally商是:0
D) 编译报错

解释:catch(Exception e){System.out.println(“Exception”);}应该放在最后一个catch处;


5. 以下对TCP和UDP描述正确的是(D)
A) TCP不能提供数据的可靠性
B) UDP能够保证数据库的可靠性
C) TCP数据传输效率高于UDP
D) UDP数据传输效率高于TCP


6. 在Java中,以下代码( A )正确地创建了一个InputStreamReader对象。
A) InuptStreamReader(new FileInputStream(“1.dat”));
B) InuptStreamReader(new FileReader(“1.dat”));
C) InuptStreamReader(new BufferReader(“1.dat”));
D) InuptStreamReader (“1.dat”);


7. 分析下面这段Java代码,它的运行结果是( C )。
Import java.io.*;
Public class B{
Public static void main(string [] args){
int i=12;
System.out.println(i+=i-=i*=i);}}

A) 100
B) 0
C) -120
D) 程序无法编译

解析:先后执行i+=(i-=(i*i))

  --1. i+=(i-=144)

--2.i+=-132

--3.i=-120


8. 使用JDBC事务的步骤是(C,A,B,D)(多选)
A) 取消Connection的事务自动提交方式
B) 发生异常回滚事务
C) 获取Connection对象
D) 操作完毕提交事务

9. 要删除book表中书籍(bookName)是”java”的记录,以下代码正确的是(A
String sql=”delete from book where bookName=?”;
PreparedStatement pst=con.preparedStatement(sql);
______________________________
pst.execute();
A) pst.setString(1,”java”);
B) pst.setString(0,”java”);
C) pst.setInt(0,”java”);
D) 以上选项都不正确

解析:sql中的下标从1开始;


0 0
原创粉丝点击