2024年前端最全多线程学习笔记02Lamda表达式与静态代理(1),Flutter中网络图片加载和缓存源码分析

专业技能

一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题

最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。

其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等

由于文章篇幅有限,仅展示部分内容

推导lambda表达式:

/*

推导lambda表达式

*/

public class TestLambda1 {

//3.静态内部类

static class Like2 implements ILike {

@Override

public void lambda() {

System.out.println(“i like lambda2==>静态内部类”);

}

}

public static void main(String[] args) {

ILike like = new Like();

like.lambda();

like = new Like2();

like.lambda();

//4.局部内部类

class Like3 implements ILike {

@Override

public void lambda() {

System.out.println(“i like lambda3==>局部内部类”);

}

}

like = new Like3();

like.lambda();

//5.匿名内部类,没有类的名称,必须借助接口或父类

like = new ILike() {

@Override

public void lambda() {

System.out.println(“i like lambda5==>匿名内部类”);

}

};

like.lambda();

//6.用lambda简化

like = () -> {

System.out.println(“i like lambda4==>用lambda简化”);

};

like.lambda();

}

}

//1.定义一个函数式接口

interface ILike {

void lambda();

}

//2.实现类

class Like implements ILike {

@Override

public void lambda() {

System.out.println(“i like lambda”);

}

}

在这里插入图片描述

用静态内部类、局部内部类、匿名内部类实现的语句用lambda简化为like = () -> { System.out.println("i like lambda4==>用lambda简化"); };

静态内部类、局部内部类、匿名内部类可见文章《Java基础09面向对象之内部类(学习笔记 专题补充 深化理解)(非原创)》

Lambda简化:

public class TestLambda2 {

public static void main(String[] args) {

//1.lambda表示简化

ILove love = (int a) -> {

System.out.println(“i love you–>” + a);

};

//简化1.参数类型

love = (a) -> {

System.out.println(“i love you–>” + a);

};

//简化2.简化括号

love = a -> {

System.out.println(“i love you–>” + a);

};

//简化3.简化花括号

love = a -> System.out.println(“i love you–>” + a);

love.love(520);

}

}

interface ILove {

void love(int a);

}

几种简化均可正常运行

在这里插入图片描述

小结:

  • lambda表达式在只有一行代码的情况下才能简化为一行,如有多行代码,需用代码块包裹
  • 前提是接口为函数式接口(接口里只有一个方法)
  • 多个参数也可以去掉参数类型,要去掉就都去掉,多个参数必须加括号

静态代理

静态代理模式:

案例一:婚庆公司

//静态代理模式

public class staticProxy {

public static void main(String[] args) {

WeddingCompany weddingCompany = new WeddingCompany(new You());

weddingCompany.HappyMarry();

}

}

interface Marry {

void HappyMarry();

}

//真实角色

class You implements Marry {

@Override

public void HappyMarry() {

System.out.println(“结婚”);

}

}

//代理角色

class WeddingCompany implements Marry {

//代理谁 真实目标角色

private Marry target;

public WeddingCompany(Marry target) {

this.target = target;

}

@Override

public void HappyMarry() {

before();

this.target.HappyMarry();//这就是真实对象

after();

}

private void after() {

System.out.println(“结婚之后收尾款”);

}

private void before() {

System.out.println(“结婚之前布置现场”);

}

}

在这里插入图片描述

小结:

  • 真实对象和代理对象都要实现同一个接口
  • 代理对象要代理真实角色

好处:

前端资料汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我一直觉得技术面试不是考试,考前背背题,发给你一张考卷,答完交卷等通知。

首先,技术面试是一个 认识自己 的过程,知道自己和外面世界的差距。

更重要的是,技术面试是一个双向了解的过程,要让对方发现你的闪光点,同时也要 试图去找到对方的闪光点,因为他以后可能就是你的同事或者领导,所以,面试官问你有什么问题的时候,不要说没有了,要去试图了解他的工作内容、了解这个团队的氛围。
找工作无非就是看三点:和什么人、做什么事、给多少钱,要给这三者在自己的心里划分一个比例。
最后,祝愿大家在这并不友好的环境下都能找到自己心仪的归宿。

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值