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)方法,给出自己的筛选规则。
阅读全文
0 0
- JAVA基础复习十九-异常、File
- Java基础复习:异常
- java基础复习 异常
- java基础复习之《异常体系》
- 黑马程序员----十九-异常和File类
- 黑马程序员--java基础复习之File类
- JAVA学习笔记(十九)- 异常
- 黑马程序员——Java基础 异常机制 (复习)
- 黑马程序员—java基础复习—异常
- Java基础复习---异常练习(二):实现图形面积
- Java中的异常复习
- java复习-异常+断言
- 黑马程序员——Java基础---异常&File
- 黑马程序员----java基础之异常和File文件类
- 黑马程序员---Java基础---异常、File类和递归
- java基础笔记之异常和File类
- 【黑马程序员】异常,File类,IO流——Java复习笔记
- JAVA基础再回首(十九)——异常的概述、Try…Catch、多异常处理、Throws、throw、finally、自定义异常及异常的注意事项
- Node.js 参数的接收
- Matlab 2017b MinGW-w64 5.3安装
- 注意力提高神经回路的突触功效和信噪比(Farran Briggs, George R. Mangun& W. Martin Usrey)
- 二叉树的创建和先序遍历
- 浅谈java反射机制
- JAVA基础复习十九-异常、File
- Linux进程的管理与调度(四) -- Linux下的进程类别以及其创建方式
- Andrew Ng公开课学习笔记——均方误差损失函数的概率解释
- 1638
- 文章标题
- 80. Remove Duplicates from Sorted Array II
- linux练习11.04
- 小仙女学习之包装类浅析
- IntelliJ IDEA +git安装及配置