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)案例:
递归求阶乘。
|
|