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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

chaoqi

中级黑马

  • 黑马币:20

  • 帖子:52

  • 精华:0

© chaoqi 中级黑马   /  2015-8-16 15:31  /  470 人查看  /  13 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

异常总结
1:异常(理解)
        (1)异常:就是程序出现的不正常情况。

        (2)异常体系:
                Throwable
                        |--Error 严重的问题,是处理不了的。要改正代码的。
                        |--Exception
非RuntimeException的,是需要处理的。编译期异常。
                                |--RuntimeException 不需要处理的,是需要改代码的。运行期异常。
                举例:
                        Error:
                                地震,海啸。
                        Exception:
                                感冒了,头疼。
                注意:
                        每种体系的子类都是以父亲的名称作为后缀。
                        XxxError
                        XxxException

        (3)java虚拟机的默认处理方式
                把异常的类名,原因,位置等信息显示在控制台。
                一旦有异常发生,其后的代码不能继续执行。

        (4)异常的解决方案:
                A:自己处理
                        基本格式:
                                try{
                                        可能发生异常的代码;
                                }catch(异常类名 变量名){
                                        异常的处理代码;
                                }finally{
                                        释放资源的代码;
                                }
                        注意:一旦有一次发生,就会立马执行catch里面的代码。

                        变形格式:
                                try...catch
                                try...catch...catch
                                try...catch...catch...finally
                                try...finally
                       
                        JDK7针对多个catch进行了优化:
                                catch(异常1 | 异常2 | 异常3 ... 变量){}

                                注意:这些异常必须是平级关系。
                                      和try...catch...catch的不同点是
                                      JDK7的这种方案是必须平级关系,不能有子父关系。
                                      而try...catch...catch父亲放最后是可以的。
                B:抛出处理
                        用throws关键字在方法上声明(抛出)。

                C:到底使用谁?
                        a:能自己处理的尽量自己处理。(建议用try...catch)
                        b:实在不行,你先抛了在说。上就业班我们对异常是进行统一处理的。

                        看到问题,点击鼠标。

可能出现的面试题:

        (5)finally的特点及面试题
                A:特点
                        里面的代码永远会执行。除非前面退出jvm。
                B:面试题
                        a:请说说final,finally,finalize的区别?
                        b:finally里面的代码永远会执行吗?
                        c:假如在catch里面有ruturn,finally里面的代码还能被执行吗?
                          如果能,请问是在return前,还是在return后?

                          如果你能说在中间,就更好了。


        (6)Exception和RuntimeException的区别?
                A:Exception 编译时期异常,必须处理的。
                            如果在方法上,throws了该类型的异常,将来调用者必须处理。
                            如果在方法内部,throw了该类型的异常,必须在方法上throws该异常。
                B:RuntimeException 运行时期异常,是不需要处理的。要改代码的。
                            如果在方法上,throws了该类型的异常,不需要处理。
                            如果在方法内部,throw了该类型的异常,方法上可以throws该异常,也可以不throws该异常。


        (7)throw和throws的用法和区别?
                A:throw
                        用法:用在方法内部,后面跟的是异常对象名称。
                        区别:用throw抛出了编译时期异常,方法上面必须用throws抛出。
                              用throw抛出了运行时期异常,方法上面可以不用throws抛出。
                B:throws
                        用法:用在方法声明上,后面跟的是异常类名。
                        区别:用throws在方法上声明了异常,内部可以没有throw


File类总结
1. File类(掌握)
       (1)概述
              因为数据在硬盘上最常见的方式,就是文件。而文件本身有很多的属性,比如说:文件大小,是否可读,是否隐藏。那么java为了方便我们对文件进行操作,就提供了File类供我们使用。
              File:既可以表示文件,也可以表示(目录)文件夹。  

       (2)构造方法:
          File(String pathname):根据指定的路径创建File对象。
              File(String parent,String child):根据指定的父文件夹和子文件或者文件夹创建File对象
              File(File parent,String child):根据指定的父文件夹对象和子文件或者文件夹创建File对象

       (3)成员方法:
          a:创建功能:
        创建文件:public boolean createNewFile()如果指定的文件不存在,就创建。如果存在, 就不创建
    创建文件夹:public boolean mkdir()创建指定的目录,如果存在,就不创建
                        public boolean mkdirs()创建指定的目录,如果存在,就不创建。这个时候,如果父目录不存在,它也会自动创建
        注意:你要创建什么,自己最清楚。也就是,你要调用哪个方法,你自己必须明白
                      因为如果你不明白,就会有问题。
                绝对路径:以盘符开始的路径
                相对路径:不以盘符开始的路径
              b:删除功能:
                     public boolean delete():既可以删除文件,也可以删除文件夹,取决于使用的对象
                     注意:A:如果你删除的目录下还有内容,那么,必须先把使用内容删除完毕后,在删除目录
                           B:java语言的删除不走回收站
             c:判断功能:(自己补齐功能方法名和返回值以及参数列表)
                 判断file对象是否存在

                     判断file对象是否是文件

             判断file对象是否是文件夹

                     判断file对象是否是绝对路径

                     判断file对象是否可读

                     判断file对象是否可写

                     判断file对象是否隐藏


         d:获取功能:(自己补齐功能方法名和返回值以及参数列表)

                 获取文件的绝对路径

                     获取相对路径

                     获取文件名称

                     获取文件的大小,单位是字节

                     获取上次修改时间的毫秒值

                     列出可用的系统文件根目录

                     返回的是指定目录下所有文件或者文件夹的名称数组

                     返回的是指定目录下所有文件或者文件夹对象数组

       (4)案例:
            获取指定目录下所有.mp4文件的名称

13 个回复

倒序浏览
给力,总结的不错,加油,同学。
回复 使用道具 举报
本帖最后由 l_15562009298 于 2015-8-16 18:31 编辑

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

finally—再异常处理时提供 finally 块来执行任何清除操作。
如果抛出一个异常,那么相匹配的 catch 子句就会执行,
然后控制就会进入 finally 块(如果有的话)。  

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

回复 使用道具 举报
在try中没有异常的情况下try、catch、finally的执行顺序 try --- finally
如果try中有异常,执行顺序是try --- catch --- finally
如果try中没有异常并且try中有return这时候正常执行顺序是try ---- finally --- return
如果try中有异常并且try中有return这时候正常执行顺序是try ---- catch ---- finally --- return
总之 finally 永远执行!
回复 使用道具 举报
做一些代码试验,记忆会深刻些
回复 使用道具 举报
童鞋真的很用功呀,钦佩
回复 使用道具 举报
l_15562009298 发表于 2015-8-16 18:35
在try中没有异常的情况下try、catch、finally的执行顺序 try --- finally
如果try中有异常,执行顺序是try - ...

finally有一种情况不会执行哦,在finally之前执行了 System.exit(10);语句  finally就不会执行了
回复 使用道具 举报
总结的好全啊?
回复 使用道具 举报
回复 使用道具 举报
sl123 中级黑马 2015-8-16 22:19:32
10#
牛人啊,学的真好,加油
回复 使用道具 举报
赞一个不错啊
回复 使用道具 举报
不错!厉害!
回复 使用道具 举报
哎呦 不错偶
回复 使用道具 举报
写得不错..收藏啰
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马