1.等待唤醒机制存在的意义是什么?当多个线程之间需要互相协作去操作同一个资源的时候,等待唤醒机制的存在就可以使得这些线程在合作的时候有规律的执行而不会出现因为争抢CPU的执行权从而出问题的事情发生。2.调用wait()方法和notify()方法,需要注意什么?
需要注意三点:1、多个线程必须使用同一个锁对象
2、两种方法均由锁对象调用
3、两种方法的调用位置都要在同步代码块、同步方法或者Lock锁方法中。
3.使用线程池来操作线程有什么好处?对于cpu来说可以减少资源消耗;对于用户来说可以提高应用的响应速度;对于程序员来说方便对线程的管理。 4.传统的面向对象编码有什么弊端?
为了实现一个简单的功能需要去编写实现类然后还要创建对象还需要重写方法。过程很繁琐,代码冗余。
5.什么情况下可以使用lambda表达式来替换面向对象编码?
这需要满足两个条件:1、接口是函数型接口,只有一个抽象类方法。2、要有接口类型作为变量的类型或者是参数列表的数据类型,接收的一定是一个接口的实现类,就是必须要有接口的上下文关系。
6.什么情况下lambda表达式可以简写?
1.可以省略小括号中的参数类型(int a,int b)->(a,b) 2.如果小括号中只有一个参数,那么小括号可以省略(int a)->{} a->{} 3.如果lambda表达式中{}中只有一条语句,看分号。一个分号就是一条语句。可以省略 {} ,renturn , 这三个要么一起省略要么都不省略。
|