【Java 从入门到实际】编程大神转 Java 的实在学习记录 –Java 中级
第六局部:异样解决
解决异样:try – catch – finally
抛出异样:throws,throw
throws 与 throw 这两个关键字靠近,不过意义不一样,有如下区别:
- throws 呈现在办法申明上,而 throw 通常都呈现在办法体内。
- throws 示意出现异常的一种可能性,并不一定会产生这些异样;throw 则是抛出了异样,执行 throw 则肯定抛出了某个异样对象
异样分类:
1、可查异样 CheckedException,如果不解决,编译器不让通过
2、非可查异样(运行时异样 RuntimeException、谬误 Error)
Throwable 类:Exception 和 Error 都继承了该类。所以在捕获的时候,也能够应用 Throwable 进行捕获。异样分 Error 和 Exception,Exception 里又分运行时异样和可查异样
自定义异样:继承自 Exception
抛出自定义异样
第七局部:I/O
第八局部:Lambda
根本应用
办法援用
聚合操作
第九局部:多线程
三种实现形式:继承线程类、Runnable 接口、匿名类
常见线程办法
sleep 以后线程暂停
join 退出到以后线程中
setPriority 线程优先级
yield 长期暂停
setDaemon 守护线程
线程同步
线程平安汇合
死锁
线程交互:Object 办法,wait、notify 和 notifyAll。须要联合 synchronized 应用
线程池:相似生产者消费者,生产的对象是一个个可能运行的工作
- 筹备一个工作容器
- 一次性启动 10 个 消费者线程
- 刚开始工作容器是空的,所以线程都 wait 在下面。
- 直到一个内部线程往这个工作容器中扔了一个“工作”,就会有一个消费者线程被唤醒 notify
- 这个消费者线程取出“工作”,并且执行这个工作,执行结束后,持续期待下一次工作的到来。
- 如果短时间内,有较多的工作退出,那么就会有多个线程被唤醒,去执行这些工作。
Lock 对象
原子拜访