鍍金池/ 教程/ Java/ Java8教程
Java8數(shù)據(jù)流
Java8默認(rèn)方法
Java8 Optional類(lèi)
Java8 Base64
Java8期間及持續(xù)時(shí)間
Java8函數(shù)式接口
Java8 日期時(shí)間API
Java8 本地DateTime API
Java8教程
Java8 Lambda表達(dá)式
Java8環(huán)境設(shè)置
Java8向后兼容
Java8 時(shí)間調(diào)節(jié)器
Java8 ChronoUnits枚舉
Java8方法引用
Java8 Nashorn JavaScript引擎
Java8 時(shí)區(qū)DateTime API

Java8教程

JAVA8有什么新的特性?

JAVA8是JAVA編程語(yǔ)言開(kāi)發(fā)的一大特色版本。它的最初版本發(fā)布于2014年3月18日。使用Java8版本,提供Java支持功能編程,新的JavaScript引擎,日期時(shí)間操作,新的流API等新API。

新功能

  • Lambda 表達(dá)式 - 增加函數(shù)處理能力到JAVA。

  • 方法引用 - 引用函數(shù)由他們名稱(chēng),而不是直接調(diào)用它們。使用函數(shù)的參數(shù)。

  • 默認(rèn)方法 - 接口有默認(rèn)的方法實(shí)現(xiàn)。

  • 新工具 - 新的編譯器工具和實(shí)用程序被添加,如jdeps找出依賴(lài)。

  • 數(shù)據(jù)流API - 新數(shù)據(jù)流的API,以方便數(shù)據(jù)流處理。

  • 日期時(shí)間API - 改進(jìn)日期時(shí)間API。

  • 可選- 強(qiáng)調(diào)最佳實(shí)踐,妥善處理空(null)值。

  • Nashorn , JavaScript引擎 - 一個(gè)基于JAVA引擎執(zhí)行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));      
   }
}

運(yùn)行程序, 看到結(jié)果。

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

在這里,sortUsingJava8()方法使用排序功能使用一個(gè)lambda表達(dá)式作為參數(shù),以獲得排序條件。