黑马程序员_java基础——异常及递归

来源:互联网 发布:淘宝贷款利息好高 编辑:程序博客网 时间:2024/05/17 01:41


黑马程序员
------- android培训java培训、期待与您交流! ----------


1:异常

(1)程序出现的不正常情况。
(2)异常的体系结构:
Throwable:
Error:是严重的问题。比如内存溢出等。要改代码。
Exception:
非RuntimeException:这才是我们要处理的异常,如果不处理,程序不能通过编译。
RuntimeException:运行才出的问题,一般也是要改代码。
(3)JVM的默认处理方案:
把异常的名称,原因,行号等信息输出在控制台。
一旦出现了异常,后面的程序将无法执行。
(4)异常处理方案:
A:try...catch...finally
try {
可能出现问题的代码。
}catch(异常类名 变量名){
异常处理。
}finally {
释放资源。
}
变形:
a:try...catch...
b:try...catch...catch...
注意:父异常一定要在最后。
c:try...catch(E1 | E2| ... e) {}  JDK7的新特性
注意:多个异常间必须是平级关系。
d:try...catch...finally
e:try...catch...catch...finally
B:throws
定义在方法声明上。用于告诉调用者,该方法存在问题。
(5)Exception和RuntimeException的区别?
Exception:编译时期异常,必须处理。
RuntimeException:运行时期异常,可以不用处理。
(6)throws和throw的区别?
throws:
在方法声明上,后面跟的是异常类名。
throws后面可以是Exception或者RuntimeException。
throw:
在方法体中,后面跟的是异常对象名。
throw后面可以是Exception或者RuntimeException。
但是,如果是Exception,方法声明上必须用throws在抛出Exception。
(7)

A:final,finally,finalize的区别?

final:是最终的意思修饰类(不可以被继承),成员方法(不可被重写),成员变量(是常量,)

finally:异常处理的组成部分,一定被执行,(特殊情况:在执行到finally之前退出jvm)

finalize:Object类中的方法,用于垃圾回收机制调用回收垃圾

B:如果catch里面有return,finally里面的代码还会执行吗?
 如果执行,是在return前还是return后?

会,在return之间,因为在执行到return时就会形成返回路径,返回当前值,但是后面有finally所以会先让finally执行

之后再返回原来的值

2:File
(1)IO流大部分情况下操作的数据都是文件。
  所以,Java就提供了一个File类供我们使用。
Java删除文件不走回收站。
如果被删除的目录有内容,必须先删除内容,再删除目录
重命名:
如果是同目录,是改名。
如果不是同目录,是剪切。
高级获取:
获取指定目录下所有File的名称数组。
获取指定目录下所有File的File数组。
3:递归
(1)方法定义中调用方法本身的现象。
举例:
老和尚给小和尚讲故事。
我们学编程。
(2)注意实现:
A:要有出口,否则死递归。
B:不要过度,否则内存溢出。
特殊:构造方法不能递归调用。
(3)递归解决问题的思想:
A:分解 (规律)
B:合并 (出口)
(4)案例:
递归求阶乘。
public static int jc(int n) {
if(n==1) {
return 1;
}else {
return n*jc(n-1);
}

}


黑马程序员
------- android培训java培训、期待与您交流! ----------

0 0
原创粉丝点击