java系统学习日常总结

今天我在进行技术互问时,老师突然问了我一个附加问题——怎样避免递归时内存溢出的现象,我在网上找到了递归终止条件: 1. 添加递归深度参数到递归函数的参数中 每次调用深度加一,在函数体中添加条件语句,当深度超过某个值时强行return; 2. 引入元素栈结构,每次递归的一些需要记录的内容,通常会压入栈中,适当的时候再弹出 在函数体中,添加条件语句,判断栈大小或者栈元素,达到条件时进行return;可能还会有别的方法,将这些方法用在递归中可以很好地解决内存溢出问题。

下面开始今天学习内容的复盘...

1.Date类

首先,计算机时间原点是1970年1月1日00:00:00。Date类代表了一个特定的时间,精确到毫秒。Date类的一个方法是public Date()用来分配一个Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒。第二个方法是public Date(long date)用来分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数。

2.SimpleDateFormat类

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。SimpleDateFormat类的常用方法:(1)public SimpleDateFormat()用于构造一个SimpleDateFormat,使用默认模式和日期格式。(2)public SimpleDateFormat(String pattern)用于构造一个SimpleDateFormat使用给定的模式和默认的日期格式。(3)public final String format(Date date)用于将日期格式化成日期/时间字符串(4)public Date parse(String source)用于从给定字符串的开始解析文本以生成日期

3.Period

方法名说明
public static Period between(开始时间,结束时间)计算两个“时间"的间隔
public int getYears()获得这段时间的年数
public int getMonths()获得此期间的总月数
public int getDays()获得此期间的天数
public long toTotalMonths()获取此期间的总月数

4.Duration

方法名说明
public static Durationbetween(开始时间,结束时间)计算两个“时间"的间隔
public long toSeconds()获得此时间间隔的秒
public int toMillis()获得此时间间隔的毫秒
public int toNanos()获得此时间间隔的纳秒

5.异常的体系结构图

6.编译时异常和运行时异常的区别

编译时异常:都是Exception类及其子类。必须显示处理,否则程序就会发生错误,无法通过编译。

运行时异常:都是RuntimeException类及其子类。无需显示处理,也可以和编译时异常一样处理。

7.throw抛出异常

格式:throw new 异常();

注意:这个格式是在方法内的,表示当前代码手动抛出一个异常,下面的代码不用再执行了

 throws和throw的区别:

throwsthrow
用在方法声明后面,跟的是异常类名用在方法体内,跟的是异常对象名
表示声明异常,调用该方法有可能会出现这样的异常表示手动抛出异常对象,由方法体内的语句处理

8.try-catch方式处理异常

定义格式:

try {
    可能出现异常的代码;
} catch(异常类名 变量名) {
    异常的处理代码;
}

执行流程:(1)程序从 try 里面的代码开始执行(2)出现异常,就会跳转到对应的 catch 里面去执行(3)执行完毕之后,程序还可以继续往下执行

注意:

  1. 如果 try 中没有遇到问题,怎么执行?

    会把try中所有的代码全部执行完毕,不会执行catch里面的代码

  2. 如果 try 中遇到了问题,那么 try 下面的代码还会执行吗?

    那么直接跳转到对应的catch语句中,try下面的代码就不会再执行了 当catch里面的语句全部执行完毕,表示整个体系全部执行完全,继续执行下面的代码

  3. 如果出现的问题没有被捕获,那么程序如何运行?

    那么try...catch就相当于没有写.那么也就是自己没有处理. 默认交给虚拟机处理.

  4. 同时有可能出现多个异常怎么处理?

    出现多个异常,那么就写多个catch就可以了. 注意点:如果多个异常之间存在子父类关系.那么父类一定要写在下面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值