A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大★宝 中级黑马   /  2014-8-4 09:10  /  1040 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1:异常(理解)
        (1)程序出现了不正常的情况。
        (2)异常的体系结构
                Throwalbe
                        |--Error        严重的问题,一般我们解决不了。我们只能尽可能的避免。
                        |--Exception       
                                |--非RuntimeException        是我们需要处理的。两种方案。
                                |--RuntimeException        是必须修正代码的。

                举例:
                        班长去旅游。骑自行车。

                        Error:山路塌陷。
                        非RuntimeException:
                                出门的时候看看轮胎是否有气。
                        RuntimeException:
                                有好路你不好好走,你偏好往是石子上走。
        (3)JVM的默认处理方案:
                一旦出现了异常,就立马在这里停止下来。
                并且,把异常的类名,错误原因,及错误位置等信息输出在控制台。
        (4)异常的处理方案:
                A:自己处理
                        基本格式:try...catch...finally...
                        变形格式:
                                try...catch...
                                try...catch...catch...
                                try...catch(异常1 | 异常2 | 异常3 变量) JDK7的新特性
                                try...catch...finally...
                                try...catch...catch...finally...
                                try...finally...
                B:抛出处理
                        在方法声明上用throws声明一下。
                        这其实是告诉调用者,你注意了,我有问题。
                        问题:
                                a:非RuntimeException 必须处理
                                b:RuntimeException 不搭理他

                注意:
                        能自己做的,就不麻烦别人。
                        我讲课为了方便,用抛出。

                最后:
                        如果你感觉不太会,一定要记住,看到调用方法的时候,
                        出现了问题,在排除其他的原因的情况下,你把鼠标放到
                        前面看看是不是throws和添加try...catch。
                        如果是,说明该异常是一个编译时期异常。
                        你只需要点击鼠标即可。
        (5)面试题:编译时期异常和运行时期异常的区别
                A:编译时期异常 是必须处理的。
                B:运行时期异常 是可以不用处理的。
        (6)finally的用法及面试题。
                A:finally是异常处理的一部分。里面的代码永远会执行。
                        特殊情况:在执行到finally之前退出了jvm。
                B:finally,final和finalize的区别?
                C:在catch里面有return的情况下,finally里面的代码还执行吗?
                  如果执行,请问在return前还是后。
                D:扩展一个面试题。
        (7)自定义异常
                java虽然提供了很多异常,但是,它并不能满足我们所有的需求,
                所以,我们在开发的过程中需要自己写异常。
                而自己定义的类要想成为一个异常类,必须继承自Exception或者RuntimeException。

2:File(理解)
        (1)因为在IO流中,我们最常见的功能就是上传或者下载文件。
           为了更方便的对文件进行操作,java就提供了一个类File供我们使用。
        (2)File类构造方法:
                A:File file = new File("d:\\a.txt");
                B:File file = new File("d:\\","a.txt");
                C:File file = new File("d:\\");
                  File file2 = new File(file,"a.txt");

                以上三种表达的意思一致。
        (3)File的功能概述
                A:创建功能
                        创建文件:createNewFile()
                        创建文件夹:mkdir(),mkdirs()

                        相对路径:不以盘符开始,针对项目路径而言。
                        绝对路径:以以盘符开始
                B:删除功能
                        删除文件或者文件夹:delete()

                        注意:
                                a:不能删除一个带内容的目录
                                b:java中的删除不走回收站
                C:重命名功能
                        renameTo():
                                同路径:改名
                                不同路径:剪切+改名
                D:判断功能
                        是否是文件:isFile()
                        是否是文件夹:isDirectory()
                E:获取功能
                        绝对路径:getAbsolutePath()
                        相对路径:getPath()
                        名称:getName()
                        大小:length()
                        最后一次修改时间:lastModified()
                F:高级获取功能
                        获取指定目录下的所有文件或者文件夹的名称数组:list()
                        获取指定目录下的所有文件或者文件夹的File数组:listFiles()

                        文件名称过滤器:
                        FilenameFilter
        (4)案例:
                输出指定目录下指定后缀名结尾的文件名称。
                A:先获取,再判断。
                B:先判断,再获取。(文件名称过滤器的使用)
                        File file = new File("d:\\");

                        String[] strArray = file.list(new FilenameFilter(){
                                public boolean accept(File dir,String name) {
                                        return new File(dir,name).isFile() && name.endsWith(".java");
                                }
                        });

                        for(String str : strArray) {
                                System.out.println(str);
                        }
       
3:递归(理解)
        (1)方法定义中调用方法本身的现象。
        (2)注意事项:
                A:递归一定要有出口,否则死递归。
                B:递归的次数不能过多,否则内存溢出。
                C:构造方法不能递归调用。
        (3)案例:
                递归求阶乘。

1 个回复

倒序浏览
顶顶顶顶顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马