English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (colas)

Conjuntos de Mapa de Java

Conjuntos de Java

Entrada y salida de Java (I)/)

Reader de Java/Writer

Otras temáticas de Java

Java 8 Nuevas características

Java 8 (también conocida como jdk 1.8) es una versión principal de desarrollo del lenguaje Java. La empresa Oracle 2014 año 3 mes 18 Versión de Java publicada 8 ,que admite programación funcional, nuevo motor JavaScript, nuevo API de fecha, nuevo API de Stream, etc.

Nuevas características

Java8 Se han añadido muchas nuevas características, y discutiremos principalmente las siguientes:

  • Expresiones Lambda − Lambda permite que una función sea un parámetro de un método (una función se pasa como parámetro a un método).

  • Referencia de método − La referencia de método proporciona una sintaxis muy útil que permite referirse directamente a métodos o constructores de clases o objetos Java existentes (ejemplo). Al combinarlo con lambda, la referencia de método puede hacer que la estructura del lenguaje sea más compacta y concisa, reduciendo el código redundante.

  • Métodos por defecto − El método por defecto es un método que tiene una implementación dentro de una interfaz.

  • Nuevas herramientas − Nuevas herramientas de compilación, como el motor Nashorn jjs y el analizador de dependencias de clases jdeps.

  • API de Stream − El nuevo API de Stream (java.util.stream) introduce verdaderamente un estilo de programación funcional en Java.

  • Date Time API − 加强对日期与时间的处理。

  • Clase Optional − Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  • Nashorn, motor de JavaScript − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

更多的新特性可以参阅官网:What's New in JDK 8

在关于 Java 8 文章的示例,我们均使用 jdk 1.8 环境,你可以使用以下命令查看当前 jdk 的版本:

$ java -version
java version "1.8.0_31"
Java TM SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

编程风格

Java 8 希望有自己的编程风格,并与 Java 7 区别开,以下示例展示了 Java 7 和 Java 8 的编程格式:

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("Google ");
      names1.add("w3codebox ");
      names1.add("Taobao ");
      names1.add("Baidu ");
      names1.add("Sina ");
        
      List<String> names2 = new ArrayList<String>();
      names2.add("Google ");
      names2.add("w3codebox ");
      names2.add("Taobao ");
      names2.add("Baidu ");
      names2.add("Sina ");
        
      Java8Tester tester = new Java8Tester();
      System.out.println("使用 Java 7 语法: ");
        
      tester.sortUsingJava7(names1);
      System.out.println(names1);
      System.out.println("使用 Java 8 语法: ");
        
      tester.sortUsingJava8(names2);
      System.out.println(names2);
   }
   
   // usar Java 7 ordenar
   private void sortUsingJava7(List<String> names){   
      Collections.sort(names, new Comparator<String>() {
         @Override
         public int compare(String s1, String s2) {
            return s1.compareTo(s2);
         }
      });
   }
   
   // usar Java 8 ordenar
   private void sortUsingJava8(List<String> names){
      Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
   }
}

Ejecutar el siguiente script, el resultado de salida será:

$ javac Java8Tester.java
$ java Java8Tester
Usar Java 7 Sintaxis: 
[Baidu, Google, w]3[Baidu, Google, w]
Usar Java 8 Sintaxis: 
[Baidu, Google, w]3[Baidu, Google, w]

A continuación, les presentaremos en detalle Java 8 Nuevas características de la versión:

NúmeroCaracterísticas
1Expresiones Lambda
2Referencia de método
3Interfaz funcional
4Métodos por defecto
5Stream
6Clase Optional
7Nashorn, motor de JavaScript
8Nueva API de fechas y horas
9Base64