黑马程序员技术交流社区

标题: 错题总结 [打印本页]

作者: a515030172    时间: 2019-2-21 16:24
标题: 错题总结
错题一
创建
崔周洋
问题标题
掌握和理解不够熟练
问题分类
对于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方法,编译并不会报错,只是不会再开启线程,而是按照重写的功能进行实现.
问题解决方法:
重写run方法,进行调用;
错题三
创建
崔周洋
问题标题
编译问题
问题分类
缺失语句
一级话题
问题补充
附件
/*
假设当前项目根路径下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 emp
问题答案
问题分析:
删除表的语法为delete from 表名 [where 条件]; 不加条件代表删除所有,除此truncate table 表名也可以删除表数据,所以选项不该加*.
问题解决方法:
去掉delete后的 * .

错题五
创建
崔周洋
问题标题
非静态方法的同步锁对象是哪一个呢?
问题分类
理解掌握不熟练
一级话题
问题补充
附件
问题答案
问题分析:
解析:非静态方法的同步锁对象为this
Ps:
1.this:相当于只有一把钥匙的多把锁,他可以锁住多个代码块,但是每次开锁只能一个,如果钥匙在其他代码块手上,那么新来的被锁的多个代码块就拿不到钥匙,进不了方自己的代码块
2.object:每一个object相当于一把锁,那么不同的锁会有不同的钥匙,这样如果自己的锁不同,一样的锁没有被其他人占据,自己开始能进入代码块   
3..clss:这是静态的锁,应为静态就带有this的含义,所以不能用this,而用类.class










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2