Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Buscador

Entradas Mensuales

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Foro de elhacker.net - Noticias

elhacker.NET en Facebook

Entradas populares

PostHeaderIcon Los usuarios de Windows XP no podrán instalar Java 8




Con fecha de 8 de abril de 2014, Microsoft ha discontinuado Windows XP, con lo que ya no es una plataforma soportada. Los usuarios de XP no podrán instalar Java 8. Los usuarios de Windows deben actualizar a Windows Vista o versión posterior para poder instalar Java 8.






 Lo que podemos entender de esto es que aunque las actualizaciones para Java 7 seguirán disponibles, Oracle no garantiza el correcto funcionamiento de éstas en XP. Estas actualizaciones no habrán sido comprobadas en Windows XP y nadie puede garantizar los efectos que podrá tener su uso.
Aunque el cese de soporte y las campañas de migración de Microsoft hacia sistemas más modernos, han hecho que la cuota de usuarios de Windows XP disminuya las estadísticas aun le sitúan como el segundo sistema de escritorio más extendido (con un 25% de usuarios) por detrás de Windows 7 con prácticamente la mitad del parque de sistemas.

Java siempre ha significado una importante brecha en los sistemas, y en los últimos tiempos se ha considerado como el punto de entrada más habitual para cualquier tipo de troyano o infección. La combinación de un Windows XP sin actualizaciones y un Java en la misma situación, no hace sino poner aun más en riesgo a los usuarios de este tipo de sistemas. Cada vez más, la seguridad en Windows XP puede ser considerada un deporte de riesgo.

Oracle seguirá soportando Java en Windows XP según el anuncio del vicepresidente de gestión de producto de la plataforma Java:

“La retirada del soporte oficial de Java a Windows XP ha sido malinterpretada y ello no quiere decir que Java ya no funciona en Windows XP o que Oracle dejará de publicar actualizaciones Java en Windows XP. Estas declaraciones no son correctas“.

“Todas las versiones de Java que fueron soportadas antes de la finalización del soporte de Windows XP por Microsoft seguirán trabajando en Windows XP en un futuro previsible. En particular, esperamos que JDK 7 continuará trabajando en Windows XP”.


         ¿Por qué Java 7 ya no está disponible en java.com?

Java 8 es la versión más reciente de Java que incluye nuevas características, mejoras y correcciones de bugs para mejorar la eficacia en el desarrollo y la ejecución de programas Java.
La nueva versión de Java estará antes disponible para los desarrolladores con objeto de garantizar que no hay ningún problema antes de que esté disponible en el sitio web java.com para descarga de los usuarios. Si está interesado en probar Java 8, puede descargar esta versión en Oracle.com.

Consulte al proveedor de aplicaciones antes de actualizar a Java 8


Puede que algunos proveedores de aplicaciones necesiten que utilice una versión concreta de Java y aún no hayan certificado sus aplicaciones con Java 8. Si tiene problemas para ejecutar una aplicación con Java 8, consulte este tema con el proveedor de la aplicación y confirme que está certificada para esta versión.

Funciones de Java 8

 A continuación se muestra un breve resumen de las mejoras que se incluyen en Java 8:

  • Métodos de extensión virtual y expresión lambda
    Una de las funciones destacables de Java SE 8 es la implantación de expresiones lambda y funciones adyacentes a la plataforma y el lenguaje de programación Java.
  • API de fecha y hora
    Esta nueva API permitirá a los administradores gestionar datos de fecha y hora de forma mucho más natural y fácil de comprender.
  • Motor de JavaScript Nashhorn
    Nueva implantación ligera de alto rendimiento del motor de JavaScript integrada en JDk y disponible en las aplicaciones Java mediante las API existentes.
  • Seguridad mejorada
    Sustitución de la lista de métodos sensibles al emisor mantenida a mano existente por un mecanismo que identifica con mayor precisión dichos métodos y permite detectar a los emisores de forma fiable.
Java 8 incorporará varias novedades siguiendo la tendencia de otros lenguajes como la incorporación de lambdas o closures o una demandada nueva API para el manejo de fechas entre otras muchas 
características más. La lista completa de novedades es bastante amplia, a continuación pondré lo que me ha parecido más destacable: 

  • Se añaden las expresiones lambda o closures y se adapta la API para usarlas en los sitios que se pueda.
  • Se definen nuevos perfiles compactos para dispositivos que no necesitan toda la API Java, esto es una alternativa a la modularización. Inicialmente la modularización era una característica que estaba planificada para Java 8 pero finalmente se ha aplazado a posteriores versiones.
  • Incluido nuevo motor de Javascript Nashorn que implementa ECMAscript 5.1 y es más rápido que su predecesor Rhino.
  • Eliminación de espacio de memoria Permanent Generation (PermGen) que pasa a llamarse Metaspace. Su tamaño será dinámico pero no evitará fugas de memoria.
  • Soporte para la creación de una máquina virtual menor a 3 MB.
  • Acceso mediante reflection a los nombres de los parámetros. Mejorará la legibilidad del código que use reflection y permitirá mejorar el soporte en los IDE.
  • Ordenación en java.util.Arrays de forma paralela.
  • Operaciones masivas sobre colecciones tales como filter/map/reduce (streams) de forma serializada o paralela.
  • Soporte de forma estándar para la codificación y decodificación Base64.
  • Nueva API para Date y Time.
  • Varias mejoras de seguridad.
  • Se incorporan en la máquina virtual Java HotSpot características que estaban en JRockit, convergiendo ambas máquinas virtuales. Se incorpora Mission Control.
  • Mejoras en JDBC la base para el acceso en bases de datos en Java.
  • Otras novedades.

Streams


Los streams no son un nuevo tipo de colección son una nueva forma de recorrer las colecciones distinta a los Iterator. La ventaja de los streams es que pueden procesarse de forma serializada o paralela y proporcionan un estilo de operaciones más funcionales. Un flujo consiste un una fuente (una colección), varias operaciones intermedias (de filtrado o transformación) y una operación final que produce un resultado (suma, cuenta...). Los streams son lazy de modo que las operaciones solo se realizan cuando se llama a la operación final, también son eficientes no necesitando en algunos casos procesar todos los elementos del stream para devolver el resultado final.

Tradicionalmente en la API de colecciones la iteración sobre los elementos debíamos proporcionarla de forma externa. Con Java 8 podemos expresarla de la siguiente forma.


int alturaMedia = personas.stream()
.mapToInt((Persona p) –> { return p.getAltura(); })
.average();

Lambda

Esta es una de las principales novedades y que más se estaba echando de menos en Java de otros lenguajes como Groovy o Python. Las expresiones lambda son funciones que no está asociadas a un determinado nombre y que pueden pasarse como argumento a otras funciones. Tienen el siguiente aspecto:


(Persona persona) –> { return persona.getAltura(); }


El uso de expresiones lambdas junto con el stream API proporciona a Java 8 características de programación funcional, pero sobre todo hace el código más sencillo, menos extenso, más expresivo y más legible. En las expresiones lambda de Java podemos seguir aprovechándonos de la compilación estática y del tipado fuerte.

Referencias de métodos


Todo el código desarrollado previamente a Java 8 no hace uso de las lambdas, pero con las referencias a métodos podemos usar esos métodos ya implementados como si se tratasen de funciones lambdas. Hay diferentes formas de hacer referencias a métodos:

  •  métodos estáticos
  •  un método de una instancia concreta
  •  un método de instancia de una instancia arbitraria de un tipo
  •  un constructor

// Método estático
Persona::compareAltura
// Método de una instancia concreta
persona::getAltura
// Método de instancia de una instancia arbitraria de un tipo
Persona::getAltura
// Constructor
Persona::new

Interfaces funcionales

Una interfaz funcional es aquella que solo tiene un método abstracto (sin implementación). Algunos ejemplos de interfaces funcionales son Runnable, ActionListener, Comparator y Callable. Para definir una interfaz funcional se puede usar la anotación @FunctionalInterface y pueden representarse con una expresión lambda. En el siguiente ejemplo puede apreciarse que con las interfaces funcionales y las lambdas podemos hacer lo mismo de forma más clara, menos verbosa y con código más legible.


Collections.sort(personas, new Comparator() {
public int compare(Persona p1, Persona p2) {
return p1.getAltura().compareTo(p2.getAltura());
}
});
 En Java 8 podemos hacer:

Collections.sort(personas, (Persona u1, Persona u2) -> {
p2.getAltura().compareTo(p2.getAltura())
});


Métodos por defecto

Hasta ahora las interfaces en Java solo podían definir métodos pero no sus implementaciones. El problema con las interfaces es que cuando se modifican se rompen todas las clases que las usan. Esto se ha resuelto de tal forma que se puedan añadir nuevos métodos con implementación a las interfaces y ha sido necesario para incorporar las lambdas a interfaces existentes como List. En Java 8 las interfaces podrán incorporar implementaciones para algunos de sus métodos, teniendo así algo parecido a herencia múltiple.


public interface Math {
int add(int a, int b);
default int multiply(int a, int b) {
return a * b;
}
}

Métodos estáticos en interfaces

Además de definir métodos por defecto en las interfaces a partir de ahora podemos definir métodos estáticos. Definiendo métodos estáticos en las interfaces evitaremos tener que crear clases de utilidad. Podremos incluir en un mismo tipo (la interfaz) todos los métodos relacionados.


public interface Persona {
String getNombre();
int getAltura();
static String toStringDatos() {
return getNombre() + " " + getAltura();
}
}

Anotaciones en cualquier uso de tipos


Con la introducción de anotaciones en Java 5 podemos usar anotaciones en la declaración de los tipos (definición de clases, interfaces, propiedades, métodos, ...). Desde ahora podremos usar las anotaciones en el uso de cualquier tipo como por ejemplo expresiones new, casts, cláusulas implements y cláusulas throws.

0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.