【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对象
原子拜访