【java笔记】lambda表达式介绍和使用_m0_52043808的博客-CSDN博客

【java笔记】函数式接口_m0_52043808的博客-CSDN博客

lambda的延迟执行

性能浪费的日志案例:

public class Demo {public static void main(String[] args) {String msg1="hello";String msg2="World";String msg3="Java";showLog(2,msg1+msg2+msg3);}public static void showLog(int level,String message){if(level==1){System.out.println(message);}}
}

showLog方法先把字符串拼接好,在执行showLog方法体,如果level不等于1,那么就不会使用拼接后的字符串,造成性能浪费

lambda优化日志案例:

接口:

@FunctionalInterface
public interface FunInterface {String builder();
}

输出日志

public class Demo {public static void main(String[] args) {String msg1="hello";String msg2="World";String msg3="Java";showLog(2,()->msg1+msg2+msg3);}public static void showLog(int level,FunInterface funInterface){if(level==1){System.out.println(funInterface.builder());//执行到这一步实现接口}}
}

分析:

使用lambda表达式作为参数传递,仅仅是把参数传递到showLog方法中,只有满足条件,才会调用接口中的方法,否则不会调用

函数式接口作为方法参数的案例:

开启一个线程:(Runnable)

public class Demo {public static void main(String[] args) {startThread(()-> System.out.println(Thread.currentThread().getName()));}public static void startThread(Runnable run){new Thread(run).start();}
}

函数式接口作为方法的返回值:

例:Compator排序

public class Demo {public static void main(String[] args) {String[]arr={"aaaaaaa","bbbb"};Arrays.sort(arr,getComparator());System.out.println(Arrays.toString(arr));}public static Comparator<String>getComparator(){return (s1,s2)->s1.length()-s2.length();}
}

【java笔记】函数式编程相关推荐

  1. Java 8 函数式编程学习笔记

    Java 8 函数式编程学习笔记 @(JAVASE)[java8, 函数式编程, lambda] Java 8 函数式编程学习笔记 参考内容 Java 8中重要的函数接口 扩展函数接口 常用的流操作 ...

  2. 【Java】函数式编程学习笔记——Stream流

    学习视频:https://www.bilibili.com/video/BV1Gh41187uR?p=1 (1)[Java]函数式编程学习笔记--Lambda表达式 (2)[Java]函数式编程学习笔 ...

  3. 阅读笔记–Java 8函数式编程,建议看书,作者高屋建瓴

    阅读笔记–Java 8函数式编程 书籍代码 为什么需要再次修改Java 1996年1月,Java1.0发布,商业发展需要更复杂的应用,跑在功能强大的多核CPU机器上.带有高效运行时编译器的Java虚拟 ...

  4. java8 函数式编程_如何使用Java 8函数式编程生成字母序列

    java8 函数式编程 我偶然发现了用户" mip"一个有趣的堆栈溢出问题 . 问题是: 我正在寻找一种生成字母序列的方法: A, B, C, ..., Z, AA, AB, AC ...

  5. 如何使用Java 8函数式编程生成字母序列

    我偶然发现了用户" mip"一个有趣的堆栈溢出问题 . 问题是: 我正在寻找一种生成字母序列的方法: A, B, C, ..., Z, AA, AB, AC, ..., ZZ. 可 ...

  6. python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程

    本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...

  7. Java 代码写的又臭又长,还不会用 Java Stream 函数式编程?

    点击上方"猿芯",选择"设为星标" 后台回复"1024",有份惊喜送给面试的你 原文 https://www.cnblogs.com/Car ...

  8. 深度探秘 Java 8 函数式编程(下)

    函数式编程的益处 更精练的代码 函数编程的一大益处,是用更精练的代码表达常用数据处理模式.函数接口能够轻易地实现模板方法模式,只要将不确定的业务逻辑抽象成函数接口,然后传入不同的lambda表达式即可 ...

  9. Java 8th 函数式编程:lambda 表达式

    Lambda 表达式是 java 8th 给我们带来的几个重量级新特性之一,借用 lambda 表达式可以让我们的程序设计更加简洁.最近新的项目摒弃了 6th 版本,全面基于 8th 进行开发,本文将 ...

  10. 【Java】函数式编程

    1 函数式接口 1.1 概念 函数式接口是有且仅有一个抽象方法的接口,可以包括静态和默认方法. @FunctionalInterface:加上注解,检测是否的函数式接口 @FunctionalInte ...

最新文章

  1. 2010网络营销-电子商务厦门峰会即将开幕
  2. 开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器
  3. php大数组循环嵌套的性能优化
  4. 【编程】位运算(异或)
  5. 启动activemq_浅谈ActiveMQ与使用
  6. Angularjs实现下拉框自动匹配键值对对象技巧
  7. springmvc sends and receives data by ajax request using json format
  8. 『重构--改善既有代码的设计』读书笔记----Split Temporary Variable
  9. linux用户登录失败,锁定用户
  10. SimpleDateFormat 线程不安全及解决方案
  11. office commmunication server 2007企业版关于通讯簿共享权限问题(无法同步)
  12. 基于M6097 switch的STP协议调试方法
  13. 2021年40个最佳免费WordPress主题
  14. win10 查看电脑mac 地址和ip
  15. IT培训行业揭秘(一)
  16. [http]http转义和加解密方法
  17. 如何正确获得Android内外SD卡路径
  18. Facebook将对视频进行人物识别及身份标注
  19. 基岩版刷铁傀儡机制和Java_我的世界基岩版刷铁塔怎么做好?
  20. kingbase之时间日期加减

热门文章

  1. 每日一课(10/75)CPU资源和存储器 之 专用寄存器的作用
  2. CCF202006-4 1246【矩阵快速幂】(100分题解链接)
  3. Bailian3246 展览会【计数+求和】
  4. CCF201312--模拟练习试题参考答案(Java)
  5. 【一题多解】平方根的计算及完全平方数的判断
  6. Java 系统工具类 —— System、Scanner、Runtime
  7. 从 dig(nslookup) bind —— windows 下的域名解析服务器信息的查看
  8. 中英文对照 —— 生活中常见词汇
  9. 循环体(for/while)循环变量的设置
  10. android返回按钮实现,Android实现返回键操作思路