美文网首页
JAVA新版本有哪些新特性

JAVA新版本有哪些新特性

作者: 外腾湖南 | 来源:发表于2022-03-25 09:50 被阅读0次

1. Java 11有哪些新特性?

JAVA 11是Java后第一个长期支持的版本

String API - isBlank() lines(); repeat()

File API

HttpClient加强: 直接创建,也不需要什么依赖包了,HttpClient client = HttpClient.newHttpClient();

现在 Java 自带了这个 HTTP Client API,我们以后还有必要用 Apache 的 HttpClient 工具包吗;

Stream加强;

Lambda局部变量推断:var 自动判断变量类型;

javac, java, compile first, now you only need java to run the code

JAVA flight recorder, JVM检查,免费的;

2. Java 8有哪些亮点:函数接口,方法引用,类型推导以及流式操作

filter()方法

orElse()方法

max()方法

Record()方法:public record Student(String name, Integer age){}

Optional

Optional类有一个isPresent()方法,你可以拿它做一个if-check。但是我们由更简短的方法——ifPresent()

findFirst()

distinct();  //去重

limit(3);

skip(2);

readString()

String text = Files.readString(Path.of("test.txt"));

新的Java Switch

var message = switch(status){}

Stream - 主要功能是:惰性的接口;

有了像Predicate这样的函数接口,我们就可以用lamada直接来使用这个函数接口了;

我们都知道 Lambda 和 Stream 是 Java 8 的两大亮点功能;

Stream 流操作是 Java 8 对集合操作功能的增强,专注于对集合的各种高效、便利、优雅的聚合操作

Functional program or functional interface...

流式操作:同时支持串行和并行的两种模式汇聚计算,流式操作的数据转换(也称映射)map

Optional 预防空指针,Stearm 流式操作,LocalDateTime 时间操作;

Java 中的 Lambda 的时候,你也会发现 Lambda 不仅没有函数名称,有时候甚至连入参和返回都可以省略,这也让代码变得更加紧凑;

在 Java 8中已经有很多接口已经声明为函数接口,如 Runnable、Callable、Comparator 等;

Lambda 的语法主要是下面几种:

一个lambda由用逗号分隔的参数列表、–>符号、函数体三部分表示

Person.create(1,"竹子爱熊猫",(Personperson)->{System.out.println("ABCDEFG……");})  //函数在这里作为一个参数;

可以简化为:

Person.create(1,"zero",person->System.out.println("竹子爱熊猫….."));

一个Lambda表达式实现了接口里的有且仅有的唯一一个抽象方法。那么对于这种接口就叫做函数式接口:

(params) -> expression

(params) -> {statements;}

Lambda 的语法特性:

使用->分割 Lambda 参数和处理语句。

类型可选,可以不指定参数类型,编译器可以自动判断。

圆括号可选,如果只有一个参数,可以不需要圆括号,多个参数必须要圆括号。

花括号可选,一个语句可以不用花括号,多个参数则花括号必须。

返回值可选,如果只有一个表达式,可以自动返回,不需要 return 语句;花括号中需要 return 语法。

Lambda 中引用的外部变量必须为 final 类型,内部声明的变量不可修改,内部声明的变量名称不能与外部变量名相同。

定义的函数接口@FunctionalInterface可以在之后直接使用;

而用方法引用的方式:实例/类::方法 - - 》User::getAge

foreEach方法:

 skills.forEach((skill) -> System.out.print(skill+","));

示例2因为用的 new 创建的集合,不属于不可变 AbstractImmutableList 类的子类,所以 copyOf 方法又创建了一个新的实例,所以为false

3.JAVA原有的一些概念的清楚程度:

Diamond Problem:B & C are all inherit from A,and D inherit from both B & C.

很多问题都要想清楚了再回答,这样可以回答得很完整;

4.为什么我们要用Lambda:

我们其实不需要匿名内部类(或其依赖的接口),我们不需要这整个类或接口,但我们其实只需要知道方法体里的内容;这就是Lambda诞生的原因,Lambda其实还是那个接口,但形式简单、且是函数式编程;那Lambda是否是也继承了这个接口呢?

函数式编程区别于指定式编程,它更在乎结果而不是过程;很多指令式编程语言(比如FortranBASICC)是汇编语言抽象化,汇编语言就是最底层化的语言;

Scheme式函数式编程早期的范本,Lazy Evaluation或call by need

5.

相关文章

  • JAVA新版本有哪些新特性

    1. Java 11有哪些新特性? JAVA 11是Java后第一个长期支持的版本 String API - is...

  • Flutter 1.12 重磅发布:支持 Web 与 macOS

    12 月 12 日,前端年度“明星”Flutter 正式发布了最新版本 1.12。新版本有哪些值得关注的新特性和改...

  • 1.Java8你需要了解的

    一、Java8新增了哪些新特性: 新特性Java8 新增了非常多的特性,我们主要讨论以下几个: 1、接口默认方法:...

  • Lambdas 和 Streams

    Java 8 的新特性,有哪些? 为了更易于创建函数对象,加入了 functional interfaces, l...

  • Java11的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java15的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java12的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • JAVA8有哪些新特性

    java8新功能Lambda 表达式 - 增加函数处理能力到JAVA。 方法引用 - 引用函数由他们名称,而不是直...

  • IntelliJ IDEA破解激活教程

    IntelliJ IDEA 新版本有很多新特性,肯定有和我一样想第一时间使用新版本,体验新特性。但 Ultimat...

  • Java 9 新增的 3 个语言新特性

    Java 9 马上就要正式发布了,新版本为我们带来了很多新的语言特性。22 岁 的 Java 语言在面向对象领域几...

网友评论

      本文标题:JAVA新版本有哪些新特性

      本文链接:https://www.haomeiwen.com/subject/zrqkjrtx.html