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