archive-fr.com » FR » E » EIXA6.FR

Total: 47

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • Les expressions lambda en Java
    une seule ligne qui est évaluable comme un retour de méthode A noter qu il n y a pas de syntaxe pour signifier le type de retour donc le type est estimé en fonction du contexte d appel Bien entendu les écritures intermédiaires comme une liste de paramètres sans type ou bien les types de paramètres et une seule ligne sont valables toutes les combinaisons sont possibles Utilisation L utilisation type de l expression lambda est l appel d une interface fonctionnelle elle aussi une nouveauté de Java en version 8 Les expressions lambdas accèdent aux attributs de la classe englobante sans limitation Elles accèdent aussi sous condition aux variables locales de la méthode dans laquelle elles sont définies Cette caractéristique rappelle les possibilités des classes imbriquées en Java Cette possibilité est mise en œuvre pour la construction de fonctions de rappel sur l IHM par exemple On peut donc imaginer le codage de callback en 3 temps Premier temps coder une classe qui implémente l interface attendue Je ne donne pas d exemple de code pour ce cas de figure Second temps coder une classe interne qui implémente l interface attendue dans cet exemple le listener est une classe anonyme JButton bouton new JButton Clique ici bouton addActionListener new ActionListener Override public void actionPerformed ActionEvent ae faire ce qu il faut faire Troisième temps si l interface ne déclare qu une seule méthode remplacer la classe anonyme par une expression lambda Ce type d interface est appelée interface fonctionnelle depuis Java8 dans cet exemple le listener est fourni sous la forme d une expression lambda JButton bouton new JButton Clique ici bouton addActionListener evt faire ce qu il faut faire Les expressions lambdas sont utilisables aussi en remplacement les références de méthodes nouveautés de Java8 Cette syntaxe vous permet de déclarer une variable de type méthode en déclarant sa signature c est à dire le nombre et le type des paramètres Si l expression lambda se conforme à ce contrat elle est utilisable pour affecter la variable dans cet exemple la méthode de comparaison est la méthode compare de la classe MaClasse on utilise une référence de méthode List Integer liste new ArrayList liste add 2 liste add 6 liste add 1 liste sort MaClasse compare Le code précédent peut être remplacé par la déclaration d une expression lambda comme suit dans cet exemple la méthode de comparaison est l expression lambda List Integer liste new ArrayList liste add 2 liste add 6 liste add 1 liste sort v w w v Les streams font abondamment usage des expressions lambdas ou plutôt le développeur conjugue inévitablement les deux Cette nouveauté permet de construire des suites de fonctions en pipe line et de déclencher ces fonctions au dernier moment dans cet exemple la méthode foreach applique l expression lambda List String liste new ArrayList liste add Fabien liste add Xavier liste add Brissonneau liste stream forEach s System out println s Limites Les limites de l expression lambda sont essentiellement

    Original URL path: http://www.eixa6.fr/index.php/10-uncategorised/java/3-les-expressions-lambda-en-java?tmpl=component&print=1&page= (2016-04-25)
    Open archived version from archive


  • eiXa6 informatique
    Envoyer ce lien par e mail à un ami Fermer la fenêtre Destinataire Expéditeur Votre adresse e mail Sujet Expédier Annuler

    Original URL path: http://www.eixa6.fr/index.php/component/mailto/?tmpl=component&template=protostar&link=661cf6bbf3c7830bf54d84df4eb6f5f7b0678cb4 (2016-04-25)
    Open archived version from archive

  • Java 8, dernière version en date
    apparue en 2014 Java 8 Java 8 a introduit les faits majeurs suivants les expressions lambdas les streams les références de méthodes Les interfaces fonctionnelles sont aussi un concept plutôt qu une syntaxe nouveau qui s articule sur les précédents Par ailleurs d autres améliorations du langage ont été réalisées Détails Écrit par Super User Catégorie Java Publication 23 octobre 2015 Affichages 224 Précédent Vous êtes ici Accueil Uncategorised Java

    Original URL path: http://www.eixa6.fr/index.php/10-uncategorised/java/2-java-8-derniere-version-en-date (2016-04-25)
    Open archived version from archive

  • Java 8, dernière version en date
    2014 Java 8 Java 8 a introduit les faits majeurs suivants les expressions lambdas les streams les références de méthodes Les interfaces fonctionnelles sont aussi un concept plutôt qu une syntaxe nouveau qui s articule sur les précédents Par ailleurs

    Original URL path: http://www.eixa6.fr/index.php/10-uncategorised/java/2-java-8-derniere-version-en-date?tmpl=component&print=1&page= (2016-04-25)
    Open archived version from archive

  • eiXa6 informatique
    Envoyer ce lien par e mail à un ami Fermer la fenêtre Destinataire Expéditeur Votre adresse e mail Sujet Expédier Annuler

    Original URL path: http://www.eixa6.fr/index.php/component/mailto/?tmpl=component&template=protostar&link=2e83a4bc1f7d24af73ce196fa33679b61c2a28bd (2016-04-25)
    Open archived version from archive

  • Page principale
    ou bien les types de paramètres et une seule ligne sont valables toutes les combinaisons sont possibles Utilisation L utilisation type de l expression lambda est l appel d une interface fonctionnelle elle aussi une nouveauté de Java en version 8 Les expressions lambdas accèdent aux attributs de la classe englobante sans limitation Elles accèdent aussi sous condition aux variables locales de la méthode dans laquelle elles sont définies Cette caractéristique rappelle les possibilités des classes imbriquées en Java Cette possibilité est mise en œuvre pour la construction de fonctions de rappel sur l IHM par exemple On peut donc imaginer le codage de callback en 3 temps Premier temps coder une classe qui implémente l interface attendue Je ne donne pas d exemple de code pour ce cas de figure Second temps coder une classe interne qui implémente l interface attendue dans cet exemple le listener est une classe anonyme JButton bouton new JButton Clique ici bouton addActionListener new ActionListener Override public void actionPerformed ActionEvent ae faire ce qu il faut faire Troisième temps si l interface ne déclare qu une seule méthode remplacer la classe anonyme par une expression lambda Ce type d interface est appelée interface fonctionnelle depuis Java8 dans cet exemple le listener est fourni sous la forme d une expression lambda JButton bouton new JButton Clique ici bouton addActionListener evt faire ce qu il faut faire Les expressions lambdas sont utilisables aussi en remplacement les références de méthodes nouveautés de Java8 Cette syntaxe vous permet de déclarer une variable de type méthode en déclarant sa signature c est à dire le nombre et le type des paramètres Si l expression lambda se conforme à ce contrat elle est utilisable pour affecter la variable dans cet exemple la méthode de comparaison est la méthode compare de la classe MaClasse on utilise une référence de méthode List Integer liste new ArrayList liste add 2 liste add 6 liste add 1 liste sort MaClasse compare Le code précédent peut être remplacé par la déclaration d une expression lambda comme suit dans cet exemple la méthode de comparaison est l expression lambda List Integer liste new ArrayList liste add 2 liste add 6 liste add 1 liste sort v w w v Les streams font abondamment usage des expressions lambdas ou plutôt le développeur conjugue inévitablement les deux Cette nouveauté permet de construire des suites de fonctions en pipe line et de déclencher ces fonctions au dernier moment dans cet exemple la méthode foreach applique l expression lambda List String liste new ArrayList liste add Fabien liste add Xavier liste add Brissonneau liste stream forEach s System out println s Limites Les limites de l expression lambda sont essentiellement liées à son contexte d utilisation Je vais ici en citer deux principales La première limitation concerne l absence d espace des variables propre à l expression lambda Cela signifie que les variables paramètres rentrent en collision avec les variables locales de la méthode dans laquelle est définie l expression

    Original URL path: http://www.eixa6.fr/index.php/10-uncategorised/this.href, (2016-04-25)
    Open archived version from archive

  • La concurrence en C++ (version 11)
    suffit de passer une fonction éventuellement des arguments std thread t1 ma fonction std thread t2 ma fonction2 t1 join t2 join std cout FIN du thread std this thread get id std endl Dans ce code 2 threads sont créés utilisant 2 fonctions qui font juste un affichage et attendent un peu Puis le thread principal est bloqué void ma fonction std chrono duration int duree 1 for int i 0 i 10 i std cout thread courant std this thread get id std endl std this thread sleep for duree void ma fonction2 std chrono duration int duree 3 for int i 0 i 10 i std cout thread courant std this thread get id std endl std this thread sleep for duree Le résultat dépend de l ordonnancement des threads le join garantit que le main se terminera lorsque les deux threads seront terminés Pour éviter les data races soit les accès concurrents malheureux sur les données il faut synchroniser les threads Cela va se faire soit par les mutexes soit en utilisant des variables de conditions Les mutexes permettent de bloquer un thread sur une ressource Un thread acquiers un mutex avec lock et le relâche avec unlock Il est possible d utiliser un mutex à durée limitée et ou avec appel réentrant Pour ne pas lever d exception à l acquisition du mutex on peut utiliser try lock Dans ce cas tester le résultat pour savoir si l acquisition est ok Si des exceptions sont levées par l utilisation des mutex il s agit de system error Les codes d erreur sont récupérés par code La gestion des tâches Le code de gestion des threads reste assez complexe pour réaliser ce qui est finalement de la gestion de tâches Le développeur est détourné de son objectif initial pour mettre en place toute la cuisine de synchronisation etc Par ailleurs il est parfois difficile d être assuré de la pertinence de créer tant et tant de threads pour rendre le service La création de threads reste coûteuse Si vous créez plus de threads que nécessaire vous perdez en efficacité Avec la gestion de tâches nous allons travailler plus haut niveau le bénéfice est double mieux se focaliser sur son besoin et laisser les tâches activer ou pas les threads sous jacents Le support des tâches est réalisé à travers quelques classes telles packaged task T promise T future T ou les fonctions async Utiliser ces éléments va drastiquement simplifier la mise en oeuvre du parallélisme Les future et promise représentent respectivement les valeurs à récupérer et la valeur positionnée par la tâche Une utilisation simpliste des tâches se réalisent de la façon suivante une fonction attend un paramètre int et ne retourne rien std packaged task void int tache1 une fonction std packaged task void int tache2 une fonction appel de la fonction avec passage de paramètre tache1 1 tache2 2 Les tâches peuvent correspondre aux threads en fonction des possibilités de la machine On peut

    Original URL path: http://www.eixa6.fr/index.php/12-uncategorised/c/5-la-concurrence-en-c-version-11?tmpl=component&print=1&page= (2016-04-25)
    Open archived version from archive

  • eiXa6 informatique
    Envoyer ce lien par e mail à un ami Fermer la fenêtre Destinataire Expéditeur Votre adresse e mail Sujet Expédier Annuler

    Original URL path: http://www.eixa6.fr/index.php/component/mailto/?tmpl=component&template=protostar&link=be593cf62d4faaff6ecc369d81dce6a5c3265a96 (2016-04-25)
    Open archived version from archive



  •