建议:
①知识以记忆和理解区分,比如集合类的那么多API实际上是要知道他有哪些方法,是怎么实现的。就是要记住类有哪些属性、方法及其实现,就是知道类的成员有哪些,实现过程。不要为了看源码而看源码,反而收获甚小。
②关于真正的理解
狂神、吸收老杜、老杜的不足、爪哇
Java8新特性:
Lambda表达式
Stream API
函数式接口
方法引用和构造器引用
接口中的默认方法与静态方法
新时间日期API
其他
-----策略设计模式、要用Lambda表达式、StreamAPI、
函数可作为返回值、可作为参数
hashcode方法
函数式接口:一个接口只包含一个方法。
对于函数式接口,我们可以用Lambda表达式来创建该接口的对象。
package nomal;public class LambdaTest01 {//方法二,静态内部类static class Love2 implements ILove{@Overridepublic void myLambda(int num) {System.out.println("Love for " + num);}}public static void main(String[] args) {//方法三,局部内部类class Love3 implements ILove{@Overridepublic void myLambda(int num) {System.out.println("Love for " + num);}}//方法四,匿名内部类ILove iLove4 = new ILove() {@Overridepublic void myLambda(int num) {System.out.println("Love for " + num);}};//方法五,Lambda表达式ILove iLove5 = (int num) ->{System.out.println("Love for " + num);};ILove iLove1 = new Love1();ILove iLove2 = new Love2();ILove iLove3 = new Love3();iLove1.myLambda(501);iLove2.myLambda(502);iLove3.myLambda(503);iLove4.myLambda(504);iLove5.myLambda(505);}}interface ILove{void myLambda(int num);}//方法一,直接实现class Love1 implements ILove{@Overridepublic void myLambda(int num) {System.out.println("Love for " + num);}}
