今天我们学习了JDK1.8的新特性,lambda表达式,等待唤醒机制和线程池,请根据自己的理解回答下面问题:
1.等待唤醒机制存在的意义是什么?
解决线程通讯问题,避免资源浪费问题。
2.调用wait()方法和notify()方法,需要注意什么?
1.同步使用的锁对象必须保证唯一;
2.只有锁对象才能调用wait和notify方法。
3.使用线程池来操作线程有什么好处?
1.降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
3. 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存。
4.传统的面向对象编码有什么弊端?
面向对象过分强调“必须通过对象的形式来做事情”,导致部分代码冗余。
5.什么情况下可以使用lambda表达式来替换面向对象编码?
使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法; 使用Lambda必须具有上下文推断。也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才能使用Lambda作为该接口的实例。
6.什么情况下lambda表达式可以简写?
1.参数列表内的类型可以简写;
2.当小括号内的参数只有一个时,小括号可以省略;
3.当大括号内有且仅有一个语句时,不管其有没有返回值,大括号,return关键字和语句分号可以一起省略。
|