IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【java8、9、10、11新特性】简单 聊聊Java891011新特性 -> 正文阅读

[Java知识库]【java8、9、10、11新特性】简单 聊聊Java891011新特性

一、Java8

1.Lambda表达式

Lambda是一个匿名函数,类似一段可以传递的代码,简洁灵活

  • “->”称为Lambda操作符或箭头操作符:
  • 左侧:指定Lambda表达式需要的参数
  • 右侧:指定Lambda体,是抽象方法的实现逻辑,即要实现的具体功能

语法格式

1.无参无返回值:()->{System.out.print(“lala”);};
2.一个参数,无返回值:(String str)->{System.out.priont();};
3.数据类型可省略(编译器推断得出),类型推断:(str)->{System.out.print();};
4.一个参数时,括号可以省略:str->{System.out.print();};
5.多个参数,多条语句,可以有返回值:(x,y)->{System…;return Integer.compare(x,y);};
6.Lambda体只有一条语句,return与大括号可省略:(x,y)->Integer(x,y);

类型推断
Lambda表达式无需指定类型,因为javac根据程序上下文,在后台推断出了参数类型。(由编译器推断)

2.函数式(Functional)接口

只包含一个抽象方法的接口
需要在一个接口上使用@FunctionalInterface注解,可以检查是否函数式接口,且Javadoc也会声明是一个函数式接口
Lambda表达式是对象,不是函数,需要依附特别的对象–函数式接口

以前匿名实现类现在都可以用Lambda表达式书写

3.方法引用与构造器引用

使用“::”将类与方法名分隔开
对象::实例方法名
类::静态方法名
类::实例方法名

//方法引用
Comparator<Integer> com = (x,y)->Integer.compare(x,y);
||
Comparator<Integer> com2 = Integer::compare;
//构造器引用ClassName::new
Function fun = (n)->new MyClass(n);
||
Function fun2 = MyClass::new;
//数组引用type[]::new
function fun = (n)->new Integer[n];
||
function fun2 = Integer[]::new

4.强大的Stream API

Collection是静态的内存数据,Stream是有关计算的。
Stream是数据渠道,用于操作数据源所生成的元素序列
特点

  • Stream自己不会存储元素
  • 不会改变源对象
  • 是延迟操作,意为他们等到需要结果时候才执行

步骤
创建Stream,中间操作,终止操作

创建流
1.Collection获取:

  • stream():返回顺序流
  • parallelStream():返回并行流

2.数组获取:
stream(T[] array):返回一个流
3.通过Stream的of方法
4.创建无限流Stream.iterate和Stream.generate()

方法
中间:筛选切片、映射、排序
终止操作:匹配查找、归约、收集

1.生成Stream流的三种方式

  • collection体系集合

    使用默认方法stream()生成流,default Stream stream()

  • Map 体系集合

    把Map转成Set集合,间接的生成流

  • 数组

    通过Stream接口的静态方法of(T… values)生成流

3.Stream流中间操作方法

说明
filter对数据进行过滤
limit截取前指定参数个数据,返回流
skip跳过指定参数个数返回流
concat合并a和b两个流为一个流
distinct返回不同流组成的流
sorted自然顺序排列
sorted(Comparator comparator)根据提供的Comparator进行排序
map返回流
mapToInt返回一个IntStream元素流

4.Stream流终结操作方法

执行完此方法,Stream流不再执行其他操作

方法说明
forEach对流的每个元素执行操作
count返回此流的元素个数

5.Stream流的收集操作

方法说明
collect把结果收集到集合中
static Collector toList()把元素收集到List集合中
static Collector toSet()把元素收集到Set集合
static Collector toMap(keyMapper,valueMapper)把元素收集到Map集合

5.Optional类

这是一个容器类,可以保存类型T的值,T可以使任意的,包括null。
在这里插入图片描述

二、Java9

模块化系统Jigsaw

  • exports:控制着哪些包可以被其他模块访问到。所有不被导出的包默认封装在模块里面(在需要被用的src下module-info.java)
  • requires:指明对其他模块的依赖(在使用的模块src下module-info.java声明)

jShell命令

  • 即写即得!快速运行!

接口私有方法

三、Java10

局部变量类型推断
集合新增创建不可变集合的方法
of、copyOf

四、Java11

ZGC:并发、压缩型的垃圾收集器
新增字符串处理
Optiona增强
HTTP客户端API

由于JDK免费版本停留在JDK8,所以后面的作以了解,重点谈下JDK8.0新特性!
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:40:35  更:2021-09-11 18:41:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:07:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码