错题一创建人 | | | | | 对于try...catch....的运用掌握的不熟练 | | | | | | public static void main(String[] args) {
try{
int num1 = 2;
int num2 = 0;
int result = num1/num2;
System.out.println(result);
throw new NumberFormatException();
}catch (ArrayIndexOutOfBoundsException e){
System.out.print("1");
}catch (NumberFormatException e){
System.out.println("2");
}catch (Exception e){
System.out.println("3");
}finally {
System.out.println("4");
}
System.out.println("5");
} | | 问题分析: 因为try块中发生的是0作为除数的异常,前两个catch块捕获的为索引越界异常和数字格式化异常,所以不进行运行, exception可以捕获到所有异常,finally是只要运行了try块或者catch块都会运行.所以结果为345. | | 错题二创建人 | | | | | | | | | | | public class tttt {
public static void main(String[] args) {
MyThread t = new MyThread();
t.run();
}
}
class MyThread extends Thread{
public void start(){
for (int i = 0; i < 10; i++) {
System.out.println("Value="+i);
}
}
} | | 问题分析: 因为没有进行run方法的重写,所以调用的run方法是原来的run方法, 其中没有具体的实现功能,所以编译通过,但是没有输出. 重写的是start方法,编译并不会报错,只是不会再开启线程,而是按照重写的功能进行实现. | | 错题三创建人 | | | | | | | | | | | /*
假设当前项目根路径下test.txt文件内容为www.itcast.cn;一下代码运行后
test.txt文件中的内容是:
*/
public class tttt {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("test.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("test.txt"));
String str = br.readLine();
if(str!=null){
bw.write("官网:"+str);
bw.flush();
}
br.close();
bw.close();
}
} | | 问题分析: 因为BufferedReader后没有加true 所以不会在原有的基础上续写,而是清空文件中的内容. | 问题解决方法: 想要在原有内容中续写内容需要在BufferedReader后加上true |
错题四创建人 | | | SQL语言中,删除EMP表中全部数据的命令正确的是 | | | | | | | | | | 问题分析: 删除表的语法为delete from 表名 [where 条件]; 不加条件代表删除所有,除此truncate table 表名也可以删除表数据,所以选项不该加*. | |
错题五创建人 | | | | | | | | | | | | | 问题分析: 解析:非静态方法的同步锁对象为this Ps: 1.this:相当于只有一把钥匙的多把锁,他可以锁住多个代码块,但是每次开锁只能一个,如果钥匙在其他代码块手上,那么新来的被锁的多个代码块就拿不到钥匙,进不了方自己的代码块 2.object:每一个object相当于一把锁,那么不同的锁会有不同的钥匙,这样如果自己的锁不同,一样的锁没有被其他人占据,自己开始能进入代码块 3.类.clss:这是静态的锁,应为静态就带有this的含义,所以不能用this,而用类.class | |
|
|