English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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úmero | Características |
---|---|
1 | Expresiones Lambda |
2 | Referencia de método |
3 | Interfaz funcional |
4 | Métodos por defecto |
5 | Stream |
6 | Clase Optional |
7 | Nashorn, motor de JavaScript |
8 | Nueva API de fechas y horas |
9 | Base64 |