JAVA基础复习十九-异常、File

来源:互联网 发布:js小球碰撞原理 编辑:程序博客网 时间:2024/05/16 15:32

一、异常

* 异常就是Java程序在运行过程中出现的错误。* B:异常的分类    * 通过API查看Throwable    * Error        * 服务器宕机,数据库崩溃等    * ExceptionC:异常的继承体系    * Throwable        * Error         * Exception            * RuntimeException

二、JVM默认是如何处理异常的

* main函数收到这个问题时,有两种处理方式:    * a:自己将该问题处理,然后继续运行    * b:自己没有针对的处理方式,只有交给调用main的jvm来处理* jvm有一个默认的异常处理机制,就将该异常进行处理.* 并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行

三、try…catch的方式处理异常

* A:异常处理的两种方式    * a:try…catch…finally        * try catch        * try catch finally        * try finally     * b:throws* try...catch的方式处理多个异常* JDK7以后处理多个异常的方式及注意事项try处如果发生异常,就相当于new出了一个对应异常的对象,catch中的异常,如果能够接受这个对象(即catch中的异常是该对象的父类或本身),就可以catch住,如果不能接受这个异常,就catch不住。try代码块中发生异常的代码的后面代码不会再被执行,被catch住后,trycatch下面的代码可以正常执行。try如果跟多个catch,小的在前面,大的在后面,是根据多态的原理,如果大的在前面,后面放小的就没有意义。

四、编译期异常和运行期异常的区别

* Java中的异常被分为两大类:编译时异常和运行时异常。* 所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常* 编译时异常    * Java程序必须显示处理,否则程序就会发生错误,无法通过编译* 运行时异常    * 无需显示处理,也可以和编译时异常一样处理

五、Throwable的几个常见方法

* A:Throwable的几个常见方法    * a:getMessage()        * 获取异常信息,返回字符串。    * b:toString()        * 获取异常类名和异常信息,返回字符串。    * c:printStackTrace()        * 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

六、throws的方式处理异常

* A:throws的方式处理异常    * 就是觉得这个异常自己处理不了,需要调用者去处理。    * 定义功能方法时,需要把出现的问题暴露出来让调用者去处理。    * 那么就通过throws在方法上标识。编译时异常的抛出,必须对其进行处理;运行时异常的抛出,可以处理也可以不处理。

七、throw的概述以及和throws的区别

* A:throw的概述    * 在方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。* C:throws和throw的区别    * a:throws        * 用在方法声明后面,跟的是异常类名        * 可以跟多个异常类名,用逗号隔开        * 表示抛出异常,由该方法的调用者来处理    * b:throw        * 用在方法体内,跟的是异常对象名 throw new Exception();        * 只能抛出一个异常对象名        * 表示抛出异常,由方法体内的语句处理

八、finally关键字的特点及作用

* A:finally的特点    * 被finally控制的语句体一定会执行    * 特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))    finally前面哪怕是return了,finally中的语句都会执行,return之前都会查一下有没有finally,没有再return,否则执行finally中的语句再返回。* B:finally的作用* 用于释放资源,在IO流操作和数据库操作中会见到

九、finally关键字的面试题

* A:面试题1    * final,finally和finalize的区别    final:修饰类,被final修饰的类不能被继承            修饰方法,不能被重写;            修饰变量,变量变成常量,只能赋值一次。finally:是try语句中的一个与具体,不能单独使用,用来释放资源finalize:是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。* B:面试题2    * 如果catch里面有return语句,请问finally的代码还会执行吗?如果会,请问是在return前还是return后。    finally中的代码会执行,硬要说的话,应该是在return中,即在return刚开始时,会查看有没有finally语句体,如果有,执行finally中的代码,但不会改变要return的值,但是在完全return之前,可能会改变变量的值。    int x = 10;    try{        x = 20;        int y = x / 0;        return x;    }catch(Exception e){        x = 30;        return x;    }finally{        x = 40;    }    最终会return 30。但是其实值在finally中被改成了40。即return已经把x=30包装好,准备送上路了,然后到finally中x变成了40。然后把包装好的x=30return回去。千万不要在finally中写返回语句,因为finally的作用是为了释放资源,是肯定会执行的,如果在这里面写了返回语句,那么try和catch的结果都会被改变。

十、自定义异常概述和基本使用

自定义异常,就是为了用这个异常的名字。* 继承自Exception* 继承自RuntimeException如果需要相应的错误信息,重写有参构造就行了。

十一、异常的注意事项及如何使用异常处理

* A:异常注意事项    * a:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)儿子是越来越优秀的,出现的错误要小于等于父亲的    * b:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常    * c:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws* B:如何使用异常处理    * 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这是用throws    * 区别:        * 后续程序需要继续运行就try        * 后续程序不需要继续运行就throws* 如果JDK没有提供对应的异常,需要自定义异常。

十二、File类

* **File更应该叫做一个路径**    * 文件路径或者文件夹路径      * 路径分为绝对路径和相对路径    * 绝对路径是一个固定的路径,从盘符开始    * 相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下* 文件和目录路径名的抽象表示形式* B:构造方法    * File(String pathname):根据一个路径得到File对象    * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象    * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象    * File(URL url);根据url创建一个file对象

十二、File类的创建功能

* A:创建功能    * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了    * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了    * public boolean mkdirs():创建多级文件夹,如果父文件夹不存在,会帮你创建出来

十三、File类的重命名和删除功能

* A:重命名和删除功能    * public boolean renameTo(File dest):把文件重命名为指定的文件路径    * public boolean delete():删除文件或者文件夹* B:重命名注意事项    * 如果路径名相同,就是改名。    * 如果路径名不同,就是改名并剪切。* C:删除注意事项:    * Java中的删除不走回收站。    * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹。所有的系统都是这样,递归先删除文件再一层一层删除空文件夹。

十四、File类的判断功能

* A:判断功能    * public boolean isDirectory():判断是否是目录    * public boolean isFile():判断是否是文件    * public boolean exists():判断是否存在    * public boolean canRead():判断是否可读..windows系统认为所有的文件都是可读的    * public boolean canWrite():判断是否可写..windows系统可以设置为不可写    * public boolean isHidden():判断是否隐藏

十五、File类的获取功能

* A:获取功能    * public String getAbsolutePath():获取绝对路径    * public String getPath():获取构造方法中传入的路径,就是在new File()的括号中传入的文件路径,传入的是绝对路径就是绝对路径,传入的是相对路径就是相对路径    * public String getName():获取名称    * public long length():获取长度。字节数,是文件的长度,不是文件名。    * public long lastModified():获取最后一次的修改时间,毫秒值    * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组    * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File对象数组 

十六、文件名称过滤器的概述及使用

* A:文件名称过滤器的概述    * public String[] list(FilenameFilter filter)    * public File[] listFiles(FileFilter filter)* B:文件名称过滤器的使用重写抽象方法accept(File dir,String name)方法,给出自己的筛选规则。
原创粉丝点击