面试题6
1.下面哪些是Thread类的方法(A B D)
A. Start() B. run() C. exit() D. getPriority()
2.下面关于java.lang.Exception类的说法正确的是(A)
A. 继承自Throwable B. Serialable
3.下列说法争取的有(C)
A. Class 中的constructor不可省略
B. Constructor必须于class同名,但方法不能与class同名
C. Constructor在一个对象被new 时执行
D. 一个class只能定义一个constructor
4.在Java中,能实现多重继承效果的方式是(C )
A. 内部类
B. 适配器
C. 接口
D. 同步
5.下面程序的运行结果:( B )
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
A. pingpong
B. pongping
C. pingpong和pongping都有可能
D. 都不输出
6.什么叫线程安全?什么叫线程不安全?
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。
线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据
7.try{}里面有一个return语句,那么紧跟在try后面的finally{}里面的code会不会被执行,什么时候被执行,在return前还是后?
在try-catch-finally中,如果try-finally或者catch-finally中都有return,则两个return语句都执行并且最终, 返回到调用者那里的是finally中return的值;而如果finally中没有return,则理所当然的返回的是try或者catch中return的值,但是,finally中的代码是必须要执行的,而且是在return前执行,除非碰到exit()。
8.异常处理。
问题1(4分):
Connection conn = null;
try{
conn = DriverManager.getConnection();
try{
1>:st.executeUpdate("update Account set money=50 where
bankcard='1001'");
}catch(Exception e){
e.printStackTrace();
}
2>:st.executeUpdate("update Account set money=100 where
bankcard='1002'");
}catch(Exception e){
3>:conn.rollback();
throws new RuntimeException(e);
}
1>:行代码如果出现异常,3>:行代码是否会执行rollback
2>:行代码如果出现异常,3>:行代码是否会执行rollback
评分:以上各两分
问题2(3分):
int a = 0;
if(a==0){
throw new RuntimeException("a的值不能为0");
return a;
//以上两行代码有什么问题?
}
查看原文:http://www.coder306.cn/?p=159