JDK各个版本的新特性jdk1.5-jdk8
文章链接: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相关推荐
- JDK各个版本的新特性
JDK各个版本的新特性 ************ 如有侵权请提示删除 *************** 文章目录 JDK各个版本的新特性 JDK1.19 新特性 JDK1.18 新特性 JDK1.17 ...
- JDK历史版本主要新特性
- 高版本JDK13新特性以及与JDK8对比
文章目录 一.关于JRE 二.关于Java运行 一.关于JRE · JDK8在下载安装完成后会弹出安装JRE的窗口,单独安装JRE.同时安装目录中除了JDK安装文件夹还有JRE文件夹.相当于JRE有两 ...
- jdk 5 到 jdk 10各个版本的新特性
jdk5 jdk10各个版本的新特性 JDK1.5新特性: 工程代号为Tiger(老虎) 自从JDK1.3开始,sun维持一个习惯,大约每隔两年发布一个JDK的主版本,以动物命名,期间发布的各个修正版 ...
- 各个JDK版本的新特性
一.各个JDK版本的新特性 (1)JDK 5 : 1 . 自动装箱 2 . 泛型 3 . 动态注释 4 . 枚举 5 . 可变长参数 6 . 遍历循环 7 . 改进了 Java 的内存模型 8 . 提 ...
- Java8新特性 (jdk1.8)
Java8新特性 (jdk1.8) **Java 8(又称为jdk 1.8)**是Java语言开发的一个主要版本. Java 8是oracle公司于2014年3月发布,可以看成是自Java5以来最具革 ...
- JDK 1.5 主要新特性
闲话:实习中,头头让我整理一下JDK各版本主要的新特性.第二篇为JDK 1.5主要新特性介绍,因为它也算是年代久远的东西,就讲讲java语言的增强吧 参考官方文档:https://docs.oracl ...
- JDK 1.4 主要新特性
闲话:实习中,头头让我整理一下JDK各版本主要的新特性.第一篇为JDK 1.4主要新特性介绍,虽说是快二十年前的东西,用处也不是很大,有兴趣可以瞄一瞄 1.XML处理 解释:针对XML处理的JavaT ...
- 一文总结Java\JDK 17发布的新特性
简介: JDK 17已经于2021年3月16日如期发布.本文介绍JDK 17新特性.JDK 17于2021年9月14日正式发布(General-Availability Release).JDK 17 ...
最新文章
- C++中的虚函数表介绍
- 关于c语言中负数位移位操作的漫谈
- 关于jsp页面传值乱码问题
- Linux内核 - tcp发送数据从应用到驱动经历的函数调用
- Python: ImportRequestsError: No module named 'requests'解决方法
- 机房管理系列之工作站
- 【机器学习】监督学习--(回归)岭回归
- Unix/Linux 目录结构的来历
- [译] iPhone X 网页设计
- (5) 学习笔记_numpy
- element ui的el-option需要默认
- python正版软件多少钱_多款正版软件 + 付费教程迎来史低价,少数派「双十一」活动全面开始...
- ninja: error: ‘xxx‘, needed by ‘xxx‘, missing and no known rule to make it
- Dubbo 线上 Thread pool is EXHAUSTED 问题跟踪
- poi 删除 word文档中的图片
- 【iOS】—— RunLoop详解
- huggingface中Bert模型的简单使用
- java实现串的反转
- 2023全网最新微信支付宝QQ三合一支付生成PHP源码
- 1、什么是pytest
热门文章
- FFmpeg源代码简单分析:av_write_trailer()
- matlab三角波发生器精度改为定点型,关于matlab simulink中三角波模块的问题!
- java 参数类型可变_java – 具有可变类型参数的通用
- 查看mysql字符集参数_查看现阶段mysql字符集的参数
- C语言章节作业第五次,C语言第五次上机作业参考答案
- no required module provides package github.com/gorilla/mux
- Commit Message 规范
- 2021 年百度之星·程序设计大赛 - 初赛二 1002 随机题意(区间贪心)
- 【宝塔】【cloudreve】挂载阿里云OSS到ECS服务器内网上
- 【编辑器】Atom上手