建议:
    ①知识以记忆和理解区分,比如集合类的那么多API实际上是要知道他有哪些方法,是怎么实现的。就是要记住类有哪些属性、方法及其实现,就是知道类的成员有哪些,实现过程。不要为了看源码而看源码,反而收获甚小。
    ②关于真正的理解

    狂神、吸收老杜、老杜的不足、爪哇

    Java8新特性:
    Lambda表达式
    Stream API
    函数式接口
    方法引用和构造器引用
    接口中的默认方法与静态方法
    新时间日期API
    其他

    -----策略设计模式、要用Lambda表达式、StreamAPI、

    函数可作为返回值、可作为参数
    image.png

    hashcode方法

    函数式接口:一个接口只包含一个方法。
    对于函数式接口,我们可以用Lambda表达式来创建该接口的对象。

    1. package nomal;
    2. public class LambdaTest01 {
    3. //方法二,静态内部类
    4. static class Love2 implements ILove{
    5. @Override
    6. public void myLambda(int num) {
    7. System.out.println("Love for " + num);
    8. }
    9. }
    10. public static void main(String[] args) {
    11. //方法三,局部内部类
    12. class Love3 implements ILove{
    13. @Override
    14. public void myLambda(int num) {
    15. System.out.println("Love for " + num);
    16. }
    17. }
    18. //方法四,匿名内部类
    19. ILove iLove4 = new ILove() {
    20. @Override
    21. public void myLambda(int num) {
    22. System.out.println("Love for " + num);
    23. }
    24. };
    25. //方法五,Lambda表达式
    26. ILove iLove5 = (int num) ->{
    27. System.out.println("Love for " + num);
    28. };
    29. ILove iLove1 = new Love1();
    30. ILove iLove2 = new Love2();
    31. ILove iLove3 = new Love3();
    32. iLove1.myLambda(501);
    33. iLove2.myLambda(502);
    34. iLove3.myLambda(503);
    35. iLove4.myLambda(504);
    36. iLove5.myLambda(505);
    37. }
    38. }
    39. interface ILove{
    40. void myLambda(int num);
    41. }
    42. //方法一,直接实现
    43. class Love1 implements ILove{
    44. @Override
    45. public void myLambda(int num) {
    46. System.out.println("Love for " + num);
    47. }
    48. }