Developpez.com

Le Club des Développeurs et IT Pro

Java : Oracle publie la Developer Preview du JDK 8

Dont la principale caractéristique est le support du projet Lambda

Le 2013-09-10 12:31:34, par Hinault Romaric, Responsable .NET
Oracle vient de publier pour les développeurs une nouvelle Preview du JDK 8.

Dans un récent billet de blog, Mark Reinhold, architecte en chef de la plateforme Java chez Oracle, invite les développeurs à tester massivement cette préversion du Kit de développement pour Java SE (Standard Edition) 8.

« Nous avons effectué des tests sur toutes les plateformes Oracle soutenues et nous n’avons trouvé aucun problème important. Nous avons aussi corrigé beaucoup de bogues depuis la sortie de la milestone en juin », explique Reinhold, qui note que la nouveauté phare de cette préversion est l’intégration du projet Lambda, qui devrait faciliter le support des architectures multiprocesseurs dans les applications.




En plus de cette nouveauté, Java 8 apporte également le nouveau moteur JavaScript Nashorn, les annotations, la nouvelle API « date and time », la convergence des JVM et bien plus. Certaines fonctions comme la génération permanente de la machine virtuelle HostSpot ont été supprimées (le but est de faire converger les JVM JRockit et Hotspot).

La sortie de la version finale de Java 8 était initialement prévue pour ce mois. Oracle avait repoussé sa date de publication au 18 mars 2014, essentiellement à cause des travaux pour corriger la vague de failles de sécurité sur les versions précédentes de la plateforme de développement.

À cause de ce retard, Java 9, initialement prévu pour 2015, a été reporté à 2016. Cette version devrait intégrer le projet Jigsaw qui apportera la modularité et un système de module à la plateforme. Le projet Jigsaw devait être embarqué dans le JDK 8, mais il a été repoussé à cause des problèmes de compatibilité. Oracle a encore procédé récemment à une réimplémentation du projet suivant de nouveaux objectifs.

Télécharger JDK 8 Developer Preview

Source : Oracle

Et vous ?

Que pensez-vous des nouveautés de Java 8 ?
  Discussion forum
9 commentaires
  • adiGuba
    Expert éminent sénior
    Salut,

    Envoyé par JoeChip
    Que signifie "la génération permanente de la machine virtuelle HostSpot" ?
    C'est le "permgen space".
    C'est l'endroit où les JVM de Sun/Oracle stockent tout ce qui n'est pas géré par le Garbage Collector (structures des classes, méthodes, constantes...).

    Il fallait dimensionner cet espace avec les options -XXermSize et -XX:MaxPermSize sous peine d'obtenir un OutOfMemoryException si on charge trop de classes...

    Désormais il n'y aura plus de problème de la sorte. Les données seront stockés en natif ou dans le heap selon le cas...

    Pour info c'est juste une fonctionnalité de la JVM JRockit qui a été intégré dans HotSpot...

    Plus d'info : http://openjdk.java.net/jeps/122

    a++

    [edit] grillé
  • XavierZERO
    Membre actif
    Que signifie "la génération permanente de la machine virtuelle HostSpot" ?
    Cela signifie qu'il n'y pas plus de Permgen. Donc fini les options -XX:MaxPermSize=... et les confusions entre un OutOfMemory en Heap ou en PermGen.

    La Heap et la PermGen ont été fusionnées à l'instar de ce qui existe avec JRockit.
  • adiGuba
    Expert éminent sénior
    Envoyé par Gugelhupf
    Que signifie en "natif" ? C'est le "stack" (la pile), comme pour les variables primitives ?
    Cela signifie qu'au lieu d'utiliser un espace mémoire réservé et limité (le permgen space), la JVM pourra allouer de la mémoire auprès de l'OS selon les besoin.

    Donc il n'y aura plus trop de limite (si ce n'est celle imposé par le système).

    Envoyé par Gugelhupf
    Mais aujourd'hui (Java7 + implémentation Sun/Oracle), certaines classes chargées dynamiquement (avec ClassLoader), ne sont pas directement chargés dans le heap ?
    Les instances oui. Mais sauf erreur de ma part le code des classes est toujours chargés dans le permgen space.

    a++
  • JoeChip
    Membre éclairé
    Bonjour,

    Que signifie "la génération permanente de la machine virtuelle HostSpot" ?

    Sinon au pif on dirait que ça va commencer à valoir la peine de lâcher 1.6 ... d'ici encore un bon moment...
  • JoeChip
    Membre éclairé
    Ok merci
  • Traroth2
    Membre émérite
    Est-ce que la JSR-305 doit être incluse dans le JDK 8 ? Parce qu'elle contient un annotation @Immutable qui serait très utile pour la programmation fonctionnelle.
  • adiGuba
    Expert éminent sénior
    @Traroth2 : je ne pense pas.

    En tout cas il n'y a aucune trace d'une telle annotation dans l'API du JDK8 : http://download.java.net/jdk8/docs/api/

    a++
  • Gugelhupf
    Modérateur
    Envoyé par adiGuba
    Les données seront stockés en natif ou dans le heap selon le cas...
    Bonjour,

    Que signifie en "natif" ? C'est le "stack" (la pile), comme pour les variables primitives ?

    Mais aujourd'hui (Java7 + implémentation Sun/Oracle), certaines classes chargées dynamiquement (avec ClassLoader), ne sont pas directement chargés dans le heap ?

    Merci
  • tralloc
    Membre averti
    Il me semble en vous lisant que c'est une bonne nouvelle !
    Merci Adiguba pour tes explications toujours aussi précises et claires.
    Vivement mai 2014