递归
StackOverflowError:栈内存溢出.
递归就是方法直接或者间接调用本身.
注意事项: 递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出现象.
使用:一些算法题.
时间api
jdk8-
Date类:
构造方法:1.pblic Date():将此刻的时间封装为对象
2.public Date(long date):根据传入的毫秒值,;来设置时间对象
成员方法:1.public void setTime(long time):根据传入的毫秒值,;来设置时间对象
2.public long getTime( ):获取时间远点,到Date对象所经历过的毫秒值.
SimpleDateormat类
Calendar类
1.创建对象:public sataicCalendar getInstance:获取Calendar的子类对象并方法并返回
2.成员方法public int get(int field):返回规定日历字段的值 Calendar.Yeay:年Caedar.MONTH月 Claednder.DAY_OF-MONTH: 日Calendar.Day_OF_WEEk
异常介绍
异常学习什么?
1.能够看懂异常信息
指的是程序在编译或者执行过程中,出现的非正常情况(错误)
注意:语法错误并非异常.
从下往上看
2.了解异常体系结结构和分类
Throwable类是所有java异常的父类.
Error:严重级别问题
常见:栈内存溢出(StackOverfloError),堆内存溢出(OutOfMemoryError)
Exception:常见问题
1.RuntimeException及其子类:运行时异常(编译时不会出错,但是运行期间会出现错误)
2.除RuntimeException之外所有异常:编译时异常(在编译阶段,语法没有问题.但是编译就是出错)--受检测异常,提醒我们这段代码很有可能出现错误,需要程序员给出预处理方案---没有错误:正常执行------有错误:执行我们给出的错误.
3.掌握异常的两种处理方式
1.抛出异常
在自己所在方法后面给出抛出的对象.java程序遇到异常,默认处理方案就是抛出异常
①在遇到异常的地方自动创建异常对象 ②然后抛个上级 mian方法.
③然后继续抛给上级JVM虚拟机 .④虚拟机接收到异常,先在控制台直接输出异常信息数据⑤终止java程序的运行⑥,后续代码没有机会执行
2.捕获异常
try...catch...捕获异常
try{
可能会出先异常的代码
}chat(异常的类名称,对象名){
异常的处理方案
}
执行流程:
①执行try{}中的代码,看是否有一次对象产生
②没有:就不会执行catch内部的代码,程序会继续向下执行.
③有:使用catch进行捕获,执行我们给出的异常处理方案,程序在继续执行.
注意:tyu语句后面可以编写多个catch,但是最大的异常一定要放在后面捕获.
结好处: try..catch语句可以让后面语句继续执行.
例子:
案例:需求:键盘录入学生的姓名和年龄,将其封装为Student学生对象
throw:用在方法中,后面gender是异常对象,是真正抛出异常对象的关键字
--编译是异常:必须编写throws声明
--运行是异常:不需要编写throws声明.
throws:用在方法声明上,后gender是异常类名,作用是声明此方法中存在异常
异常的两种处理方式,怎么选?
思路:看问题是否需要抛出
1.需要:抛出
2.不需要:try...catch...捕获异常.
4.自定义异常.
Throwable:
getMessage():返回异常的错误原因
toString():返回次异常信息的简短描述
printStackTrace():返回异常错误的完整信息.