文章链接:JDK各个版本的新特性jdk1.5-jdk8

不过最有用的是java的lambda表达式,还有stream的运用,以及map和reduce。一篇文章就够了。厉害。

jdk8新特性(部分)

  • 接口可以添加默认方法,default;
  • lambda表达式,对于接口可以直接用()->{}方式来表达,小括号表示方法入参,花括号内表示方法返回值,如Collections的sort()方法:

Collections.sort(names, (String a, String b) -> {return b.compareTo(a); }); Collections.sort(names, (String a, String b) -> b.compareTo(a)); Collections.sort(names, (a, b) -> b.compareTo(a));

  • 函数式接口,@FunctionalInterface, 将lambda表达式映射到一个单方法的接口上
  • 方法和构造函数的引用,可以使用::,如Integer::valueOf
  • lambda表达式访问外层作用域和老版本的匿名对象中的方式很像,可以直接访问标记了final的外层局部变量,或者实例的字段以及静态变量。
  • java.util.Stream 表示能应用在一组元素上一次执行的操作序列。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样你就可以将多个操作依次串起来。

Stream 的创建需要指定一个数据源,比如 java.util.Collection的子类,List或者Set, Map不支持。Stream的操作可以串行执行或者并行执行。


//Filter 过滤
stringCollection.stream().filter((s) -> s.startsWith("a")) .forEach(System.out::println); //Sort 排序 stringCollection .stream() .sorted() .filter((s) -> s.startsWith("a")) .forEach(System.out::println); //排序只创建了一个排列好后的Stream,而不会影响原有的数据源,排序之后原数据stringCollection是不会被修改的; //Map 映射 //中间操作map会将元素根据指定的Function接口来依次将元素转成另外的对象,下面的示例展示了将字符串转换为大写字符串 stringCollection .stream() .map(String::toUpperCase) .sorted((a, b) -> b.compareTo(a)) .forEach(System.out::println); //Match 匹配 //Stream提供了多种匹配操作,允许检测指定的Predicate是否匹配整个Stream。所有的匹配操作都是最终操作,并返回一个boolean类型的值 boolean anyStartsWithA = stringCollection .stream() .anyMatch((s) -> s.startsWith("a")); boolean allStartsWithA = stringCollection .stream() .allMatch((s) -> s.startsWith("a")); boolean noneStartsWithZ = stringCollection .stream() .noneMatch((s) -> s.startsWith("z")); //Count 计数 //计数是一个最终操作,返回Stream中元素的个数,返回值类型是long long startsWithB = stringCollection .stream() .filter((s) -> s.startsWith("b")) .count(); //Reduce 规约 //这是一个最终操作,允许通过指定的函数来讲stream中的多个元素规约为一个元素,规越后的结果是通过Optional接口表示的 Optional<String> reduced = stringCollection .stream() .sorted() .reduce((s1, s2) -> s1 + "#" + s2); reduced.ifPresent(System.out::println);

  • java.time下包含了全新的时间日期API
  • 支持多重注解

参考这里

转载于:https://www.cnblogs.com/luckyStone/p/7405480.html

JDK各个版本的新特性jdk1.5-jdk8相关推荐

  1. JDK各个版本的新特性

    JDK各个版本的新特性 ************ 如有侵权请提示删除 *************** 文章目录 JDK各个版本的新特性 JDK1.19 新特性 JDK1.18 新特性 JDK1.17 ...

  2. JDK历史版本主要新特性

  3. 高版本JDK13新特性以及与JDK8对比

    文章目录 一.关于JRE 二.关于Java运行 一.关于JRE · JDK8在下载安装完成后会弹出安装JRE的窗口,单独安装JRE.同时安装目录中除了JDK安装文件夹还有JRE文件夹.相当于JRE有两 ...

  4. jdk 5 到 jdk 10各个版本的新特性

    jdk5 jdk10各个版本的新特性 JDK1.5新特性: 工程代号为Tiger(老虎) 自从JDK1.3开始,sun维持一个习惯,大约每隔两年发布一个JDK的主版本,以动物命名,期间发布的各个修正版 ...

  5. 各个JDK版本的新特性

    一.各个JDK版本的新特性 (1)JDK 5 : 1 . 自动装箱 2 . 泛型 3 . 动态注释 4 . 枚举 5 . 可变长参数 6 . 遍历循环 7 . 改进了 Java 的内存模型 8 . 提 ...

  6. Java8新特性 (jdk1.8)

    Java8新特性 (jdk1.8) **Java 8(又称为jdk 1.8)**是Java语言开发的一个主要版本. Java 8是oracle公司于2014年3月发布,可以看成是自Java5以来最具革 ...

  7. JDK 1.5 主要新特性

    闲话:实习中,头头让我整理一下JDK各版本主要的新特性.第二篇为JDK 1.5主要新特性介绍,因为它也算是年代久远的东西,就讲讲java语言的增强吧 参考官方文档:https://docs.oracl ...

  8. JDK 1.4 主要新特性

    闲话:实习中,头头让我整理一下JDK各版本主要的新特性.第一篇为JDK 1.4主要新特性介绍,虽说是快二十年前的东西,用处也不是很大,有兴趣可以瞄一瞄 1.XML处理 解释:针对XML处理的JavaT ...

  9. 一文总结Java\JDK 17发布的新特性

    简介: JDK 17已经于2021年3月16日如期发布.本文介绍JDK 17新特性.JDK 17于2021年9月14日正式发布(General-Availability Release).JDK 17 ...

最新文章

  1. C++中的虚函数表介绍
  2. 关于c语言中负数位移位操作的漫谈
  3. 关于jsp页面传值乱码问题
  4. Linux内核 - tcp发送数据从应用到驱动经历的函数调用
  5. Python: ImportRequestsError: No module named 'requests'解决方法
  6. 机房管理系列之工作站
  7. 【机器学习】监督学习--(回归)岭回归
  8. Unix/Linux 目录结构的来历
  9. [译] iPhone X 网页设计
  10. (5) 学习笔记_numpy
  11. element ui的el-option需要默认
  12. python正版软件多少钱_多款正版软件 + 付费教程迎来史低价,少数派「双十一」活动全面开始...
  13. ninja: error: ‘xxx‘, needed by ‘xxx‘, missing and no known rule to make it
  14. Dubbo 线上 Thread pool is EXHAUSTED 问题跟踪
  15. poi 删除 word文档中的图片
  16. 【iOS】—— RunLoop详解
  17. huggingface中Bert模型的简单使用
  18. java实现串的反转
  19. 2023全网最新微信支付宝QQ三合一支付生成PHP源码
  20. 1、什么是pytest

热门文章

  1. FFmpeg源代码简单分析:av_write_trailer()
  2. matlab三角波发生器精度改为定点型,关于matlab simulink中三角波模块的问题!
  3. java 参数类型可变_java – 具有可变类型参数的通用
  4. 查看mysql字符集参数_查看现阶段mysql字符集的参数
  5. C语言章节作业第五次,C语言第五次上机作业参考答案
  6. no required module provides package github.com/gorilla/mux
  7. Commit Message 规范
  8. 2021 年百度之星·程序设计大赛 - 初赛二 1002 随机题意(区间贪心)
  9. 【宝塔】【cloudreve】挂载阿里云OSS到ECS服务器内网上
  10. 【编辑器】Atom上手