Java8教程

JAVA8有什么新的特性?

JAVA8是JAVA编程语言开发的一大特色版本。它的最初版本发布于2014年3月18日。使用Java8版本,提供Java支持功能编程,新的JavaScript引擎,日期时间操作,新的流API等新API。

新功能

  • Lambda 表达式 - 增加函数处理能力到JAVA。

  • 方法引用 - 引用函数由他们名称,而不是直接调用它们。使用函数的参数。

  • 默认方法 - 接口有默认的方法实现。

  • 新工具 - 新的编译器工具和实用程序被添加,如jdeps找出依赖。

  • 数据流API - 新数据流的API,以方便数据流处理。

  • 日期时间API - 改进日期时间API。

  • 可选- 强调最佳实践,妥善处理空(null)值。

  • Nashorn , JavaScript引擎 - 一个基于JAVA引擎执行JavaScript代码。

考虑下面的代码片段。

import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;

public class Java8Tester {

   public static void main(String args[]){
      List<String> names1 = new ArrayList<String>();
      names1.add("Mahesh ");
      names1.add("Suresh ");
      names1.add("Ramesh ");
      names1.add("Naresh ");
      names1.add("Kalpesh ");

      List<String> names2 = new ArrayList<String>();
      names2.add("Mahesh ");
      names2.add("Suresh ");
      names2.add("Ramesh ");
      names2.add("Naresh ");
      names2.add("Kalpesh ");

      Java8Tester tester = new Java8Tester();

      System.out.println("Sort using Java 7 syntax: ");      
      tester.sortUsingJava7(names1);
      System.out.println(names1);     
   
      System.out.println("Sort using Java 8 syntax: ");      
      tester.sortUsingJava8(names2);
      System.out.println(names2);
   }

   private void sortUsingJava7(List<String> names){
      //sort using java 7
      Collections.sort(names, new Comparator<String>() {
         @Override
         public int compare(String s1, String s2) {
            return s1.compareTo(s2);
         }
      });
   }

   private void sortUsingJava8(List<String> names){
      //sort using java 8
      Collections.sort(names, (s1, s2) ->  s1.compareTo(s2));      
   }
}

运行程序, 看到结果。

Sort using Java 7 syntax: 
[ Kalpesh Mahesh Naresh Ramesh Suresh ]
Sort using Java 8 syntax: 
[ Kalpesh Mahesh Naresh Ramesh Suresh ]

在这里,sortUsingJava8()方法使用排序功能使用一个lambda表达式作为参数,以获得排序条件。


猿狮妹
2022-12-03
Java教程 Java8 Java 在线教程
热门教程
1 Java8教程 JAVA8是JAVA编程语言开发的一大特色版本。它的最初版本发布于2014年3月18日。使用Java8版本,提供Java支持功能编程,新的JavaScript引擎,日期时间操作,新的流API等新API。
2 Java8环境设置 Java8环境设置 在开始学习本教程之前,我们需要先Java编程语言设置环境,那么这部分指导如何下载和设置Java在机器上。请按照以下步骤来设置环境。 Java SE是免费提供的链接 下载Java
3 Java8 Lambda表达式 Lambda表达式是在Java8中引入的,并号称是Java8的最大的特点. Lambda表达式有利于函数式编程,简化了开发了很多。 语法 lambda表达式的特点,它的语法如下面。 parameter - expression body 下面是
4 Java8方法引用 方法引用有助于自己的名字指向方法。方法参考描述使用::符号。一种方法参考可以用来指向下列类型的方法。 静态方法。 实例方法。 使用new运算符构造函数(TreeSet::new) 方法参考实
5 Java8函数式接口 函数式接口其中有一个单一的功能,以显示出这些接口。例如,一个可比接口使用单个方法compareTo,并且被用于比较目的。 Java8定义被广泛应用于lambda表达式很多函数形式的接口。以下
6 Java8默认方法 Java8引入的接口默认方法实现一个新的概念。此功能是为了向后兼容性增加,使旧接口可用于利用JAVA8。 lambda表达式的能力,例如,列表或集合接口不具备forEach方法声明。从而增加了这
7 Java8数据流 流/Stream是在JAVA8中引入的一个抽象,可以处理类似SQL语句声明数据。 例如,考虑下面的SQL语句。 SELECT max(salary),employee_id,employee_name FROM Employee 上面的SQL表达式会自动返回最大薪水员工的
8 Java8 Optional类 Optional用于包含非空对象的容器对象。Optional对象,用于表示使用不存在null值。这个类有各种实用的方法,以方便代码来处理为可用或不可用,而不是检查null值。它是Java引入, 是类似于
9 Java8 Nashorn JavaScript引擎 使用Java8,Nashorn大大提高了JavaScript 引擎引入,以取代现有的Nashorn Java脚本引擎。Nashorn提供2至10倍更好的性能,因为它直接编译代码在存储器,并传递到字节码JVM.Nashorn使用invokedynamic
10 Java8 日期时间API 使用Java8,新的日期时间API引入覆盖旧的日期时间API的以下缺点。 非线程安全 - java.util.Date不是线程安全的,因此开发者必须在使用日期处理并发性问题。新的日期时间API是不可变的,
  • Copyright © 2021 猿狮院, All rights reserved.