【Java从入门到实际】编程大神转Java的实在学习记录--Java中级
第六局部:异样解决

解决异样:try - catch - finally

抛出异样:throws,throw

throws与throw这两个关键字靠近,不过意义不一样,有如下区别:

  1. throws 呈现在办法申明上,而throw通常都呈现在办法体内。
  2. 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应用

线程池:相似生产者消费者,生产的对象是一个个可能运行的工作

  1. 筹备一个工作容器
  2. 一次性启动10个 消费者线程
  3. 刚开始工作容器是空的,所以线程都wait在下面。
  4. 直到一个内部线程往这个工作容器中扔了一个“工作”,就会有一个消费者线程被唤醒notify
  5. 这个消费者线程取出“工作”,并且执行这个工作,执行结束后,持续期待下一次工作的到来。
  6. 如果短时间内,有较多的工作退出,那么就会有多个线程被唤醒,去执行这些工作。

Lock对象

原子拜访