Les meilleurs cours et tutoriels pour apprendre JAVA
Les meilleurs cours et tutoriels pour apprendre JAVA
Sélection des meilleurs tutoriels et cours de formation gratuits pour apprendre la programmation Java. Vous trouverez les meilleures méthodes éducatives pour une formation agréable et complète, ainsi que des exercices intéressants, voire ludiques, vous pouvez aussi trouver des exercices offerts en sus des cours pour perfectionner votre niveau et acquérir de l'expérience. Si vous avez besoin, n'hésitez pas aussi à vous référer à la FAQ Java et à poser vos questions sur les forums d'entraide Java.
Un espace de dialogue vous est proposé sur le forum si vous avez des remarques concernant cette page cours Java : 2 commentaires .
Page lue fois.
Nombre d´auteurs : 287, nombre de traducteurs : 2, nombre d´articles : 241, dernière mise à jour : 25 novembre 2023
-
Java 21 me fait à nouveau aimer Java, il présente quelques points forts, notamment la prise en charge des motifs d'enregistrement
par Raghav ShankarJava 21 est déjà disponible et prend en charge les motifs d'enregistrement dans les blocs de commutation et les expressions. Une telle syntaxe est monumentale (du moins, au pays de Java). Elle marque le point où Java pourrait être considéré comme supportant correctement les modèles de programmation fonctionnelle de manière similaire à Kotlin, Rust, ou C#.Création : 7 novembre 2023 -
Une sélection des meilleurs tutoriels et cours de formation gratuits pour apprendre la programmation Java. Vous trouverez les meilleures méthodes éducatives pour une formation agréable et complète, ainsi que des exercices intéressants, voire ludiques, vous pouvez aussi trouver des exercices offerts en sus des cours pour perfectionner votre niveau et acquérir de l'expérience. Si vous avez besoin, n'hésitez pas aussi à vous référer à la FAQ Java et à poser vos questions sur les forums d'entraide Java. -
Programmation Java pour les enfants, les parents et les grands-parents
par Yakov Fain, Vincent Lataye, Maxime DanielCe livre électronique est destiné aux enfants de 11 à 18 ans, aux professeurs enseignant l'informatique à l'école ou tout autre débutant en Java.
Il est idéal pour les parents qui veulent faire découvrir à leur enfant le monde de la programmation des ordinateurs - le vrai, pas un succédané pour le lecteur pressé et distrait.
Il peut aussi être très utile aux étudiants qui recherchent un complément abordable aux cours exhaustifs et compliqués.
Pour résumer, ce livre est assez facile d'accès pour convenir aux débutants de tous âges. -
Corrections des exercices du livre « Java pour les enfants, les parents et les grands-parents »
par Laurent BernabéLe livre Programmation Java pour les enfants, les parents et les grands-parentsProgrammation Java pour les enfants, les parents et les grands-parents propose de nombreux exercices, mais aucune correction n'était disponible. C'est donc le but de cet article. -
Apprenez à programmer en Java avec ce tutoriel qui se propose de fournir des informations pratiques sur le développement en Java.
Sommaire : Développons en Java
Partie 1 : Les bases du langage Java
Partie 2 : Développement des interfaces graphiques
Partie 3 : Les API avancées
Partie 4 : L'utilisation de documents XML et JSON
Partie 5 : L'accès aux bases de données
Partie 6 : La machine virtuelle Java (JVM)
Partie 7 : Développement d'applications d'entreprises
Partie 8 : Le développement d'applications web
Partie 9 : Le développement d'applications RIA / RDA
Partie 10 : Le développement d'applications avec Spring
Partie 11 : Les outils pour le développement
Partie 12 : Concevoir et développer des applications
Partie 13 : Les tests automatisés
Partie 14 : Java et le monde informatique
Partie 15 : Développement d'applications mobiles
Partie 16 : Annexes -
Excellent et célèbre cours « Comment penser en Java » 2e édition. Cours très complet avec exercices et nombreux codes source. Descriptions plus approfondies que les descriptions de l'aide du JDK d'Oracle. Cours à télécharger. -
Vous trouverez, dans les documents qui suivent, un ensemble de tutoriels sous formes de vidéos qui vous permettront d'apprendre la programmation Java à partir des bases. Au fur et à mesure des tutoriels, le niveaux des exemples de code proposés augmentera afin de vous aider à maîtriser les différents aspects de ce fantastique langage de programmation orienté objet. -
Apprendre à utiliser Jib pour construire des images Docker avec le langage Java et Maven
par Olivier LevittC'est tout nouveau, c'est tout frais, Google vient d'annoncer et de publier Jib, un outil pour « Build Java Docker images better ». Nous vous proposons dans cet article de découvrir cet outil Jib. -
Tutoriel pour comprendre plus facilement les NullPointerExceptions avec la JEP 358 (Nouveauté Java 14)
par Lilian BENOITCet article présente la JDK Enhancement Proposal (JEP) 358 (Helpful NullPointerExceptions) qui propose de gérer plus efficacement le NullPointerException.
Sommaire
-
Apprenez à programmer en Java avec ce tutoriel qui se propose de fournir des informations pratiques sur le développement en Java.
Sommaire : Développons en Java
Partie 1 : Les bases du langage Java
Partie 2 : Développement des interfaces graphiques
Partie 3 : Les API avancées
Partie 4 : L'utilisation de documents XML et JSON
Partie 5 : L'accès aux bases de données
Partie 6 : La machine virtuelle Java (JVM)
Partie 7 : Développement d'applications d'entreprises
Partie 8 : Le développement d'applications web
Partie 9 : Le développement d'applications RIA / RDA
Partie 10 : Le développement d'applications avec Spring
Partie 11 : Les outils pour le développement
Partie 12 : Concevoir et développer des applications
Partie 13 : Les tests automatisés
Partie 14 : Java et le monde informatique
Partie 15 : Développement d'applications mobiles
Partie 16 : Annexes -
Programmation Java pour les enfants, les parents et les grands-parents
par Yakov Fain, Vincent Lataye, Maxime DanielCe livre électronique est destiné aux enfants de 11 à 18 ans, aux professeurs enseignant l'informatique à l'école ou tout autre débutant en Java.
Il est idéal pour les parents qui veulent faire découvrir à leur enfant le monde de la programmation des ordinateurs - le vrai, pas un succédané pour le lecteur pressé et distrait.
Il peut aussi être très utile aux étudiants qui recherchent un complément abordable aux cours exhaustifs et compliqués.
Pour résumer, ce livre est assez facile d'accès pour convenir aux débutants de tous âges. -
Une sélection des meilleurs tutoriels et cours de formation gratuits pour apprendre la programmation Java. Vous trouverez les meilleures méthodes éducatives pour une formation agréable et complète, ainsi que des exercices intéressants, voire ludiques, vous pouvez aussi trouver des exercices offerts en sus des cours pour perfectionner votre niveau et acquérir de l'expérience. Si vous avez besoin, n'hésitez pas aussi à vous référer à la FAQ Java et à poser vos questions sur les forums d'entraide Java. -
Corrections des exercices du livre « Java pour les enfants, les parents et les grands-parents »
par Laurent BernabéLe livre Programmation Java pour les enfants, les parents et les grands-parentsProgrammation Java pour les enfants, les parents et les grands-parents propose de nombreux exercices, mais aucune correction n'était disponible. C'est donc le but de cet article. -
Excellent et célèbre cours « Comment penser en Java » 2e édition. Cours très complet avec exercices et nombreux codes source. Descriptions plus approfondies que les descriptions de l'aide du JDK d'Oracle. Cours à télécharger. -
L'approche orientée objet a pour objectif de faciliter la création de programmes modulaires en en facilitant l'écriture et la maintenance. L'environnement Java en est une implémentation parmi d'autres ; parmi ses avantages, on peut compter une grande communauté d'utilisateurs.
On attend du lecteur une certaine expérience de la programmation (de préférence en langage C ou ayant une syntaxe similaire, étant donné que les structures de contrôle et autres fonctionnalités de base de tout langage procédural ne seront pas réexpliquées). -
Cours Java : bases du langage, classes et interfaces, interfaces graphiques, JDBC, Programmation TCP-IP, RMI, CORBA.
343 pages
-
Ces nombreux exercices peuvent servir aussi bien aux étudiants souhaitant s'exercer, qu'à ceux qui apprennent à programmer par eux-mêmes. De plus, ces exercices peuvent aussi servir de ressources pour comprendre comment faire telle ou telle chose. Ils vous permettront également de tester votre niveau... seriez-vous capable de les faire ? -
Cours sur la programmation orientée objet application au langage Java : introduction au langage Java, bases du langage, classes et objets, héritage, héritage et polymorphisme, les indispensables (package, collections, exception, flux de fichiers). -
Excellent et célèbre cours « Comment penser en Java » 3e édition. Cours très complet avec exercices et nombreux codes sources. Descriptions plus approfondies que les descriptions de l'aide du JDK de Oracle. Cours à télécharger. -
Cours Java très complet et récent avec exemples sur Java, y compris Applets, AWT, SWING & I/O. -
Cet article fait un vaste tour d'horizon du monde Java et des technologies qui y sont liées afin de permettre aux nouveaux arrivants de se faire une idée d'ensemble. -
Ceci est une brève introduction à l'environnement de développement BlueJ. -
Le but de ce cours est de découvrir les technologies Java permettant de développer des applications embarquées, notamment sur des téléphones portables. Ce cours permet de découvrir deux technologies supportées par Oracle : Java ME et Java FX. Une troisième partie aborde le développement d'applications client-serveur en environnement embarqué. -
Ce document présente les 53 mots réservés de Java, à l'aide de définitions et d'exemples simples. Il vous offre également un mémento et un livret à imprimer vous-même. -
Chapitre 2 du mémo du certifier Java SE 6 : la programmation orientée objet
par Ndjobo Armel FabriceLe but de cet article est de présenter de façon précise et concise les notions du langage Java relatives à la programmation orientée objet. Y seront abordées les notions d'encapsulation, d'héritage, de surcharge des méthodes, de conversion des types, d'instanciation, de couplage et de cohésion. -
L'outil artEoz permet au débutant en programmation objet de se familiariser avec les constructions spécifiques aux langages objets comme la création d'objets, la notion d'appel de fonction/méthode avec receveur ou encore la liaison dynamique. -
Vous trouverez, dans les documents qui suivent, un ensemble de tutoriels sous formes de vidéos qui vous permettront d'apprendre la programmation Java à partir des bases. Au fur et à mesure des tutoriels, le niveaux des exemples de code proposés augmentera afin de vous aider à maîtriser les différents aspects de ce fantastique langage de programmation orienté objet. -
Java 21 me fait à nouveau aimer Java, il présente quelques points forts, notamment la prise en charge des motifs d'enregistrement
par Raghav ShankarJava 21 est déjà disponible et prend en charge les motifs d'enregistrement dans les blocs de commutation et les expressions. Une telle syntaxe est monumentale (du moins, au pays de Java). Elle marque le point où Java pourrait être considéré comme supportant correctement les modèles de programmation fonctionnelle de manière similaire à Kotlin, Rust, ou C#.Création : 7 novembre 2023
-
Il existe de multiples collections en Java, mais laquelle utiliser ? Cet article vous en présente les principales pour vous aider à choisir. -
Découvrir les collections Java est une chose, en connaitre les subtilités en est une autre. Cet article vous présente certaines des subtilités utiles des collections en Java. -
Cet article va vous présenter une liste des tous les mots réservés du langage Java et leur signification. -
Depuis 10 ans maintenant, le phénomène Java ne cesse de prendre de l'ampleur. Simple à appréhender, cette technologie recèle de richesses incroyables que vous pourrez découvrir après avoir suivi cette initiation. -
Tutoriel sur la manipulation des expressions régulières avec l'API Regex de Java. La puissance des regex au service de la recherche de motifs dans des chaînes de caractères et les conversions de format. -
La demoiselle s'est fait attendre ! C'est le moins que l'on puisse dire. Alors que l'on était jusque-là habitué à avoir une nouvelle version tous les deux ans en moyenne, il aura fallu quatre ans et demi pour voir débarquer Java SE 7. Mais il est vrai que son développement fut assez mouvementé, entre les ajouts/suppressions de fonctionnalités, les divers reports et surtout le rachat de Sun par Oracle... -
En fin d'année dernière, le report de Java 7 laissait envisager l'intégration des closures. Cela a donné naissance au projet Lambda dont l'objectif était de regrouper les différents travaux afin d'en sortir une spécification claire et fonctionnelle quitte à se passer de certain « power-concept ». Il en ressort une proposition d'expressions Lambda relativement allégée vis-à-vis des multiples et très complètes propositions de closures faites par le passé. Mais cela s'accompagne également de nouveaux concepts fort intéressants (Exception Transparency, Method References, Defender Methods). Voyons de quoi il en retourne... -
Alors que Java 5.0 s'annoncait comme une révolution, en apportant un grand nombre de modifications dans le langage, le nouvel opus de Java se présente plus serein et mature. Pas de révolution pour Java SE 6, mais de vraies évolutions afin de préparer le futur du langage et son ouverture aux autres langages. -
Les nouveautés de Java 5.0 Tiger (J2SE 1.5). Tiger est le nom de code de la prochaine version de Java SE, l'environnement de base de développement en langage Java. Dans cet article vous allez découvrir les principales nouveautés apportées par cette nouvelle version de la technologie Java. -
Afin de profiter au maximum de la JVM d'IBM (appelée J9), il est important de comprendre son fonctionnement. C'est ce que nous allons voir dans ce tutoriel. -
La classe String étant immuable, la création de copies de protection est donc inutile. De ce fait pendant longtemps j'ai pensé que la présence de ce constructeur de copies String(String) était une bizarrerie de l'API, que l'on se traine pour des raisons de compatibilité ascendante. -
Résumé concernant l'utilisation des chaînes de caractères en Java. -
Les Strings sont un des objets les plus employés de Java. À tel point qu'il est même impossible de créer une application Java sans en faire usage. Voyons comment les utiliser de manière optimale... -
Le but de cet article est de présenter les notions fondamentales du langage Java de façon concise. Globalement, nous parlerons des énumérations, des classes et des interfaces en prenant le soin de traiter chaque point dans le détail. -
La méthode est très simple, mais mérite d'être appliquée systématiquement dans vos développements. En effet, vérifier l'intégrité des paramètres avant tout traitement permet d'une part de rendre votre code beaucoup plus lisible , et d'autre part, de s'assurer de sa robustesse . Rien ne devrait plus arriver qui n'a été prévu. Voici trois exemples de code, le premier sans vérification, le second avec vérification en cours de code et le dernier avec validation des paramètres, que vous utiliserez dorénavant. -
Ce tutoriel traite des opérations binaires en Java. Les explications suivantes pourront néanmoins être utilisées dans tout autre langage. -
Voici le premier article d'une série, qui vous introduira des binaires Java, afin de pouvoir optimiser ou modifier votre code et peut-être, pour vous, de créer un minicompilateur Java, un obfuscateur ou un générateur de code à la volée ! Dans un premier temps, nous nous attarderons sur la machine virtuelle Java ou JVM (Java Virtual Machine), de cette façon, la compréhension des instructions binaires et de la structure d'un fichier .class sera plus facile à aborder par la suite. Cette première partie n'est rien de plus qu'un rassemblement des spécifications de la JVM, et un cours d'introduction sur le « byte-code » (ce que l'on pourrait appeler l'assembleur du Java). Amusez-vous bien, c'est une nouvelle dimension pour ceux qui connaissent déjà le langage Java sur le bout des doigts ! -
Ce tutoriel vise à présenter les différents types primitifs de Java ainsi que les classes enveloppes. Il indique comment bien les employer en montrant les mécanismes qui se cachent derrière certaines opérations. -
L'implémentation dynamique est une façon de construire dynamiquement une instance. Cette pratique peut être difficile à appréhender mais nous allons voir comment l'utiliser, et dans quels types de projets elle se révèle très utile. -
La version 5 du JDK (Tiger) a introduit une notion qui est passée inaperçue face aux autres nouveautés (généricité, auto-boxing, etc.) Cette nouveauté est la covariance des types retours. Cet article aura pour but de présenter les concepts qu'introduit cette notion. Je vous proposerai quelques exemples permettant de mettre en évidence son utilité. -
Les annotations permettent de marquer différents éléments du langage Java avec des attributs particuliers, dans le but d'automatiser certains traitements et même d'ajouter des traitements avant la compilation grâce au nouvel outil du JDK : APT . -
La dernière tendance à la mode en programmation consiste à utiliser des métadonnées. Vous pouvez d'ores et déjà les utiliser avec C# et la prochaine version 2.4 de Python nous les promet. La dernière version de Java, le Java SE 5, propose également les métadonnées, appelées annotations. -
Les développeurs attendent impatiemment la version 5.0 de Java qui apporte de nombreuses nouveautés au langage. L'une d'entre elles, les types paramétrés ou generics en anglais, changera considérablement la manière d'écrire les programmes Java. -
Dans ce documement, je vous présente un cadre de développement particulier : les assertions . Les assertions sont la traduction en code interprétable par un ordinateur de vos certitudes. Vous traduisez souvent celles-ci à l'aide de commentaires dans le code. À partir d'aujourd'hui, vous pourrez le faire sous la forme d'un code interprétable. -
Après une présentation des exceptions, cet article tente d'illustrer quelques bonnes pratiques de programmation en rapport avec les exceptions. -
Pour rappel, une closure représente un « bloc de code », qui peut être manipulé comme un objet. À l'heure actuelle l'utilisation de classes anonymes est ce qui s'en rapproche le plus (avec une syntaxe assez lourde toutefois). L'objectif des Closures étant d'utiliser une syntaxe plus concise. -
Les closures style BGGA sont extrêmement complètes, mais apportent également leur lot de complexité. De ce point de vue-là, la proposition CICE prend le problème à contre-pied et propose une implémentation la plus simple possible. -
Après BGGA et CICE, voici une présentation de la proposition de closures FCM qui se place exactement entre les deux précédentes : à la fois plus simple que BGGA, mais également plus complète que CICE. -
Cet article présente un retour d'expérience personnelle sur l'impression en Java. Il présente l'API officielle pour l'impression ainsi que ses limites. Il présente aussi les techniques que j'ai employées pour contourner ces limites. Ce document n'est donc pas une documentation officielle, mais plutôt le fruit de recherches individuelles pour arriver à obtenir une impression de qualité en Java. -
Vous allez découvrir le garbage collector de Java, fort malhabilement nommé ramasse-miettes en français. Cet article explique comment la machine virtuelle gère la mémoire et comment fonctionne le garbage collector. En le maitrisant vous pourrez éviter des utilisations abusives de la mémoire et optimiser vos applications. -
La gestion de la mémoire en Java (profilage avec Netbeans 5.x). -
Java simplifie grandement la gestion des données par rapport à des langages comme le C ou le C++ en ne permettant au développeur de ne manipuler que des références. La libération des objets est en outre réalisée par le garbage collector. Ces particularités ont de nombreux avantages, mais rendent très difficile une gestion fine de la mémoire. Elles peuvent également introduire des problèmes importants dans vos programmes. -
Cet article est le premier d'une série de trois articles consacrés à la performance des applications Java. Il traite de considérations générales applicables au niveau de l'algorithmique et de la programmation. -
Ce modeste article vous présente les tables de hachage, une structure de données très répandue et pratique. En plus d'expliquer le concept, vous trouverez une implémentation faite pas à pas en Java.
Aucune connaissance préalable n'est requise. -
Présentation du développement de services en Java avec le ServiceLoader. -
Cet article, en plusieurs parties, permettra aux développeurs Java de pouvoir facilement passer à Cocoa et Objective-C. -
Les fermetures (« closures » en anglais) permettent d'encapsuler un comportement et de le manipuler et le balader comme n'importe quel objet, tout en continuant à avoir accès au contexte dans lequel il a été déclaré initialement. La plupart des articles concernant les fermetures sont écrits en termes de langages fonctionnels. Il est utile d'écrire un article qui traite de comment elles apparaissent dans des langages orientés objet plus traditionnels. -
Présentation des annotations de type et de Hashorn le moteur JavaScript, deux nouveautés de Java 8
par Yohan Beschi (SOAT)Cet article s'intéresse à détailler les annotations de type et le moteur JavaScript Nashorn. Il a été rédigé quand le JDK 8 n'était pas encore à l'état finalisé, il est possible qu'il y ait des différences entre les fonctionnalités décrites dans cet article et celles proposées dans la version finale. -
Cet article s'intéresse à détailler la nouvelle API pour gérer les dates et l'heure. Il a été rédigé quand le JDK 8 n'était pas encore à l'état finalisé, il est possible qu'il y ait des différences entre les fonctionnalités décrites dans cet article et celles proposées dans la version finale. -
Cet article s'intéresse à détailler le projet Lambda pour la future version de Java 8. Il a été rédigé quand le JDK 8 n'était pas encore à l'état finalisé, il est possible qu'il y ait des différences entre les fonctionnalités décrites dans cet article et celles proposées dans la version finale. -
En attendant la sortie de Java 8, un tutoriel qui présente les nouveautés concernant les interfaces Java. -
Ce tutoriel vise à expliquer de manière succincte les concepts de java.io. Il est destiné aux personnes débutantes en Java. -
Cinquante nouvelles choses que l'on peut faire avec Java 8, retour de la conférence Devoxx France 2014
par Julien Sadaoui (SOAT)Cet article s'intéresse à la session « 50 nouvelles choses que l'on peut faire avec Java 8 » présentée par José Paumard lors de la conférence Devoxx France 2014. -
Ensemble de tutoriels qui présentent en détail la machine virtuelle Java. -
Apprendre à basculer son code vers Java 8 sur un projet à grande échelle, retour d'expérience depuis un hackathon
par Nadhem Lamti (PaloIT)J'accompagne Voyages SNCF (VSCT) depuis plus de deux ans en tant qu'Architecte de suivi de production chez PALO IT. J'interviens notamment sur les problématiques liées à la mise en production de nouvelles versions des applications. À travers cet article, je vais vous faire part de mon retour d'expérience suite à ma participation à un hackathon intitulé « Faire basculer VSCT vers Java 8 ». -
Né dans les locaux de SUN courant 2008, le très ambitieux projet « Jigsaw » a failli connaître la gloire en 2012. Son objectif est d'aboutir à une plateforme Java modulaire répondant, plus efficacement, aussi bien aux attentes des grandes plateformes Java EE, qu'à celles des architectures plus restreintes comme les mobiles, les tablettes et les micropuces. Une plateforme Java flexible, légère et performante est plébiscitée, attendue par tous. Or après huit ans de gestation, pourrions-nous continuer à croire à la naissance d'un miracle ? -
Parmi les grands axes d'optimisation d'une application Java, il y a la bonne gestion de sa mémoire et du garbage collector. Pour rappel, lorsque celui-ci s'exécute, toute l'application peut être figée pendant quelques millisecondes (ou plus), le temps de nettoyer les références inutiles. Le second axe d'amélioration est d'optimiser les accès au monde extérieur à la JVM (notamment dans le cadre d'accès à la base de données et des requêtes SQL / HSQL ou autres entrées/sorties). -
Ce tutoriel s'intéresse à décrire les bonnes pratiques quant à l'usage de la nouvelle API pour manipuler les dates et heures avec Java 8. -
Ce tutoriel s'adresse aux développeurs qui souhaitent découvrir (ou redécouvrir) l'API stream introduite dans Java 8 grâce au langage SQL. -
Comme tout système s'appuyant sur des inputs, il est très important de contrôler les arguments des méthodes quand on élabore une API, qu'elle soit locale sous forme de JAR ou distante via un service REST, afin de non seulement la rendre plus robuste et stable, mais aussi de se prémunir de certaines attaques. Cependant, en Java de base, c'est particulièrement laborieux, rébarbatif et cela engendre une fainéantise exacerbée. Conséquences directes et désastreuses : baisse de la qualité, de la robustesse du code et créations potentielles de failles de sécurité. Cet article tente de faire le tour de la question, sans prétention, en ratissant assez large. C'est-à-dire en allant de Java classique jusqu'à Bean Validation et JAX-RS, en passant par une implémentation spécifique « faite maison ». -
La sortie récente du JDK 10 a vu débouler le mot-clé var dans le petit monde de Java ; ainsi comme dans d'autres langages avant lui (C#, JavaScript, etc.), lors de la déclaration de variables locales. Ce billet de blog s'intéresse à expliquer son usage. -
Apprendre à migrer de Java 8 à Java 11, nouveautés et changements du langage Java pour les développeurs
par Loic MathieuSi vous avez suivi un petit peu l'actualité de Java, vous avez dû remarquer qu'il s'est passé pas mal de choses cette dernière année : Java 9 est sorti il y a un an avec pas mal de nouveautés (dont la tant attendue modularité du JDK) et n'est déjà plus supporté depuis 6 mois, Java 10 est sorti il y a 6 mois et n'est plus supporté non plus, Java 11 vient de sortir et il est LTS (Long Term Support). Oracle fournit deux distributions de Java : Oracle et OpenJDK et propose du support étendu pour ceux qui le veulent. Java 8 (la version la plus utilisée actuellement) ne sera plus supporté à partir de janvier 2019 ! Ceux qui sont un peu perdus là-dedans, cet article est fait pour eux ! Je vais tenter d'éclaircir le nouveau mode de gouvernance de Java (cycle des versions, support, distribution) et de vous présenter les principales nouveautés des versions 9, 10 et 11 en faisant le point sur les changements à destination des développeurs. -
Java 12 est sorti le 20/03/19, apportant une nouvelle façon d'écrire des structures de contrôle switch/case. Cela m'a donné une idée, certes un peu étrange, de revoir le traditionnel switch/case d'un point de vue programmation fonctionnelle en s'appuyant sur des lambdas et une petite classe Switch, le tout en JAVA 8 ! -
Il y a un an, je vous faisais le bilan des nouveautés de Java dans les versions 8 à 11 ici : Java.Next. Depuis Java 10, les versions de Java arrivent tous les six mois avec une version Long Term Support (LTS) toutes les six versions, la première LTS étant Java 11. Maintenant que trois nouvelles versions de Java sont sorties depuis le précédent article (la 14, il y a quelques jours seulement), il est grand temps de se pencher sur ce qu'elles apportent. Et on peut dire qu'en trois releases nous avons eu beaucoup de nouvelles fonctionnalités fort intéressantes : Switch Expressions, Text Blocks (des Strings sur plusieurs lignes), des NullPointerExceptions avec des messages d'erreurs plus parlants, les Records et un début de Pattern Matching. -
Tutoriel pour comprendre plus facilement les NullPointerExceptions avec la JEP 358 (Nouveauté Java 14)
par Lilian BENOITCet article présente la JDK Enhancement Proposal (JEP) 358 (Helpful NullPointerExceptions) qui propose de gérer plus efficacement le NullPointerException. -
Vous trouverez dans ce tutoriel une découverte des nouveautés de Java 15 avec des explications et des exemples. -
Cet article s'intéresse au projet Skara. L'objectif du projet est d'étudier les alternatives à Mercurial pour le gestionnaire de sources et les différents fournisseurs. Ce qui est intéressant dans la démarche, c'est qu'il dissocie le choix de gestionnaire de sources et le choix de l'hébergeur. Le choix de Mercurial avait été fait par Sun Microsystems en 2006.Commentez Création : 26 mars 2021 -
Tutoriel pour apprendre à écrire des blocks de texte avec la JEP 378 (nouveauté Java 15)
par Lilian BENOITCet article présente la JDK Enhancement Proposal (JEP) 378 (Text Blocks) qui permet l'écriture des chaines de caractères sur plusieurs lignes.Commentez Création : 4 mars 2021
-
Les Collections Java ont un peu plus d'une douzaine d'années d'existence et s'imposent comme une des plus importantes API du monde Java. De nombreux framework en utilisent les fonctionnalités et les étendent. C'est notamment le cas de Google-Collections qui ajoute des évolutions intéressantes comme les Prédicats, les objets Multi ou Bi, les immutables, etc. Ce document est un point de départ à la découverte des éléments clés de Google-Collections. -
Simplifier le code de vos beans Java à l'aide de Commons Lang, Guava et Lombok
par Thierry Leriche-DessirierUn bean classique, représentant un chien par exemple, peut vite peser des centaines de lignes quand on l'équipe avec les méthodes classiques et indispensables (constructeurs, getters, setters, equals, hashCode, toString, compareTo), même s'il possède peu d'attributs. Dans cet article, nous verrons comment mettre un tel cabot au régime et lui faire une beauté à l'aide de Commons Lang, Guava et Lombok. Nous en profiterons pour comparer ces bibliothèques entre elles et avec le code Java habituel, sans oublier celui qu'Eclipse génère. -
Le RMI (ou Remote Method Invocation) est très souvent utilisé, soit directement, soit dans des couches sous-jacentes. RMI est par exemple utilisé pour exposer des EJB SessionBeans. Notre objectif va être de démystifier RMI en comprenant ses mécanismes. Nous allons analyser comment une invocation à distance est possible en allant jusqu'a implémenter notre propre version allégée de RMI. Bien entendu, afin de nous focaliser sur les objectifs de cet article, certains prérequis sont nécessaires. Aucun rappel sur l'utilisation et la gestion d'un réseau en Java ne sera fait. -
Cet article a pour objectif de vous présenter une solution légère et rapide de remoting avec Caucho Hessian. -
Cet article vous présente l'utilisation de l'api java.comm pour le contrôle des ports séries. -
Tutoriel sur la manipulation des archives Zip et GZip avec l' API Zip de Java. Vous apprendrez comment faire de la compression Zip et comment décompresser des archives Zip. -
Ce tutoriel vise à présenter le package java.io en décrivant les différentes classes qui le composent et en précisant quand et comment les utiliser. -
Vous avez sûrement déjà utilisé Internet ou un simple réseau local. Dans un tel environnement, les applications communiquent entre elles par le biais d'objets appelés sockets. Nous allons donc apprendre à manipuler ces sockets... -
Ce cours introduira les notions pour permettre la gestion du réseau en Java à l'aide de la bibliothèque standard Java. Notamment pour la gestion des communications du côté serveur et du côté client suivant les protocoles TCP et UDP. -
De nombreux programmeurs critiquent Java pour des raisons de performances. Malgré les améliorations constantes de nos ordinateurs et des JVM, ce reproche perdure. Nous allons cependant voir que connaître les API suffit largement pour obtenir d'excellentes performances. -
Cet article présente le mode opératoire pour la création d'un rapport Birt avec une requête paramétrée.
Il a été réalisé avec la version 2.0.1 du moteur Birt. -
Cet article va vous présenter SLF4J qui est une couche d'abstraction de journalisation. Cette API a plusieurs avantages qui seront présentés dans cet article ainsi que les différentes fonctionnalités de cette bibliothèque. -
L'objet de ce tutoriel est de montrer comment accéder simplement aux données d'un serveur Ldap via Spring Ldap 1.2.
Il est n'est pas nécessaire d'utiliser ou de connaitre Spring pour utiliser ce tutoriel.
Il n'est pas non plus nécessaire d'installer un serveur Ldap, car nous utiliserons le serveur public de www.openldap.com . -
Ce tutoriel constitue une première approche pour l'utilisation de la bibliothèque Bouncy Castle, bibliothèque de cryptographie (signature, chiffrement...) libre et open source. . -
Cet article est destiné aux développeurs Java qui souhaitent écrire des applications permettant de faire du traitement d'images en Java avec l'API Java 2D. Pour comprendre les notions présentées dans cet article, une connaissance préalable de l'API SWING est un minimum requis. -
Cet article est destiné aux développeurs Java qui souhaitent écrire des applications ou des applets permettant de traiter du son ou de la vidéo en Java en utilisant l'API Java Media Framework(JMF) sous un système Win32. -
Cet article explique comment manipuler les projections avec la bibliothèque GeotoolKit. Un zip contenant tous les exemples se trouve à la fin. -
Structure et première carte avec Geotools. Une approche professionelle, mondiale en respect des normes en vigueur dans le domaine des systèmes d'informations géographiques. -
Dix minutes pour faire de la géolocalisation. Vous avez tous fait des bases de données contenant l'adresse, le code postal et la ville d'un client ou d'un utilisateur. Grâce à GoogleMaps quel que soit votre langage de programmation vous pouvez accéder à une carte de localisation. -
Voici une liste non exhaustive des principaux outils pouvant être utilisés pour le développement cartographique. -
Article orienté SIG (Système d'information géographique). Dans cet article vous verrez comment décompresser un fichier VisualDEM .dem. Ce format est ancien et peu utilisé, il stocke un modèle numérique de terrain. -
Apache Software Foundation propose une large gamme de bibliothèques facilitant grandement la tâche du développeur Java. Ce sont ces bibliothèques que nous allons découvrir dans cet article. -
Afin d'éviter à tous les développeurs de gérer à la main le tableau d'arguments de la méthode main, il existe deux API dans le monde open source.
La première est Jakarta Commons CLI, qui commence à avoir un certain âge, la seconde est Args4j qui est plus récente.
Cet article a pour but de vous montrer leur utilisation, ainsi que les avantages de chacune d'elles. -
Les Commons Collections sont des extensions développées par Jakarta pour compléter le framework Collections du JDK de Oracle. Elles définissent un certain nombre d'interfaces ainsi qu'une multitude d'implémentations relatives au comportement et à la manipulation des collections. -
Cet article décrit les mécanismes et l'utilisation de l'API Commons Configuration du projet Jakarta. -
Cet article est consacré à la programmation orientée aspect. Il présente d'abord, d'une manière indépendante de l'implémentation, les principaux concepts de l'AOP, puis illustre ces concepts avec des mises en œuvre pratiques en langage AspectJ à travers un exemple d'application. -
Cet article va vous présenter l'installation de JR sous Windows. Ce n'est pas un article pour apprendre la programmation JR, c'est juste un article pour installer JR sous Windows. -
Après avoir vu comment créer un agent JADE sous Eclipse ici. Nous allons voir dans cet article comment utiliser les comportements (behaviours), l'un des aspects les plus importants de la programmation orientée agent. -
Après avoir vu comment créer un agent JADE et comment définir ses tâches ; alors pour parler d'un véritable système multiagent et non pas d'un ensemble d'agents agissant d'une manière individuelle, il est temps de voir comment les agents communiquent et s'échangent les messages. Cet article a comme but de montrer comment les agents JADE s'échangent les messages, et comment créer des conversations entre les agents JADE. -
Le compilateur Canterbury Pascal est un compilateur Pascal assez particulier, puisqu'il produit du code pour une machine virtuelle Java (bytecode) ou une traduction du programme en Java. -
Cet article a été rédigé pour permettre d'étudier les différentes couches d'une application répondant aux spécifications JMX. Les principales fonctionnalités des clients JMX sont discutées et accompagnées de plusieurs exemples illustratifs. -
Ce tutoriel a pour objectif de découvrir l'utilisation de JNI avec Delphi. -
JNI (Java Native Interface) et JNA (Java Native Access) sont deux technologies qui permettent d'adresser du code natif dans du code Java. Nous explorerons dans cet article une comparaison de ces deux technologies en les appliquant à un même exemple dans le but de dresser un bilan de leur utilisation. -
Dans cette série de trois articles dédiée à l'intelligence artificielle distribuée, nous allons aborder des notions liées à la fois à l'algorithmique, les mathématiques, les sciences cognitives ou encore la robotique. Aussi, nous mettrons en place une simulation basée sur le Framework Intellego afin de nous initier aux techniques de contrôle robotique avant de conclure par le développement de briques Lego RCX.
Dans cette première partie, nous allons créer un univers dans lequel évolueront les robots : Les labyrinthes parfaits . -
Voici un petit guide des bonnes pratiques pour exécuter une application externe en Java. -
Tutoriel sur l'analyse de la qualité du code source d'un projet de développement en Java avec l'outil JavaNCSS 21.41. -
Tutoriel sur l'analyse de la qualité du code source d'un projet de développement en Java avec l'outil JDepend 2.7. -
Oracle a décidé d'aider Java à devenir une technologie indispensable pour le développement d'applications riches. Pour cela, un projet libre a été mis en place sur javadesktop.org, les JDIC, que nous allons découvrir ensemble. -
Dans de nombreuses applications, il peut paraître indispensable aux yeux de l'utilisateur de bénéficier d'un moteur de recherche. Toutefois, l'écriture d'un tel module demande beaucoup de temps et d'effort. Il est donc grand temps pour nous de découvrir Lucene. -
UndoableJText est une petite API permettant d'implémenter les fonctionnalités « undo » et « redo » sur vos objets de type JTextComponent. Ces fonctionnalités sont présentes dans la quasi totalité des applications actuelles et leur absence peut même parfois surprendre. -
Tutoriel sur la génération de variables aléatoires uniformes, normales et exponentielles avec l'API Random de Java. Tout sur la création de nombres aléatoires de bonne qualité. -
L'introspection consiste en la découverte, de façon dynamique, des informations propres à une classe Java. Ces informations, que nous appellerons métadonnées, décrivent de façon exhaustive les caractéristiques d'une classe Java (champs, méthodes...). Ce mécanisme est utilisé par la machine virtuelle Java en cours d'exécution, mais également par les outils de développements. L'API Java qui permet ceci est l' API Reflection , nous allons voir à travers cet article à quoi celle-ci peut servir, mais surtout comment vous pourrez l'utiliser pour vos développements Java. -
La plateforme Java offre une notion avancée de programmation nommée introspection, ou en anglais reflection. Cette notion permet de découvrir à l'exécution la nature des objets de l'environnement et d'agir sur eux sans pour autant les connaître. -
Selon l'importance d'une application, certains utilisateurs expriment le besoin d'extraire régulièrement des données, calculer des statistiques, ou effectuer des opérations de maintenance. Ces tâches peuvent s'avérer coûteuses en ressources système (temps CPU, mémoire, réseau...) et donc détériorer le temps de réponse de l'application au détriment des autres utilisateurs. Une solution est de programmer l'exécution de ces tâches la nuit, de manière récurrente ou non. Ce tutoriel explique comment planifier simplement des tâches en Java avec le JDK et de manière plus sophistiquée avec la bibliothèque Quartz. -
Ce tutoriel a pour but de présenter la sérialisation binaire en Java. Après une initiation aux bases de ce concept, il poursuit sur les fonctionnalités plus complexes qui vous permettront une maîtrise totale de la sérialisation. -
Ce tutoriel a pour but de présenter la sérialisation XML en Java. Il commence par les bases et continue sur les fonctionnalités plus complexes qui vous permettront une maîtrise totale de ce mécanisme. -
Le format CSV est, aujourd'hui encore, largement utilisé. Il fait le bonheur des équipes de développement car il est simple à manipuler. La lecture d'un fichier au format CSV demande toutefois un certain nombre de compétences. Ce document aborde les points clés à maîtriser, pas à pas avec une difficulté progressive, pour savoir traiter le célèbre CSV. -
Ce petit article montre (par l'exemple) comment charger des données depuis un fichier CSV simple, à l'aide d'Open-CSV, en quelques minutes. -
Charger et afficher des données de la base et d'un fichier CSV simple en 5 minutes
par Thierry Leriche-DessirierCe petit article montre (par l'exemple) comment charger des données depuis un fichier CSV simple (avec Open-CSV) et depuis la base MySql (avec JDBC), en fusionnant les valeurs pour les afficher dans une Interface (Swing) sous forme de tableaux (JTable et Table model) et sous forme de graphes, le tout en quelques minutes seulement. -
Dans ce quatrième article sur Guava, nous allons découvrir tous les petits utilitaires de Guava, bien utiles au quotidien. -
Guava est une bibliothèque de chez Google proposant de nombreux outils pour améliorer le code des programmes Java. Elle permet, entre autres, de manipuler les collections, de jouer efficacement avec les immutables, d'éviter la gestion des beans nuls, de s'essayer à la programmation fonctionnelle, de cacher les objets, de les simplifier, et bien d'autres choses. -
Le Leap Motion Controller, commercialisé depuis août 2013, est un capteur de la taille d'un briquet qui constitue une véritable révolution en matière de navigation et de contrôle par détection de mouvements. -
Ce tutoriel aura pour but de vous apprendre à manipuler l'API Javamail, dans ses fonctions essentielles, à savoir envoyer et recevoir des mails, depuis de simples messages textes jusqu'à de complexes messages HTML avec pièces jointes. -
Java intègre un framework puissant et facile à utiliser pour gérer les ensembles d'éléments. Nous nous sommes demandé s'il existait des substituts fiables, c'est-à-dire des bibliothèques simples, performantes et robustes. Pour cela nous avons testé un panel de frameworks qui semblaient intéressants. -
Guava est une bibliothèque proposant de nombreux outils pour améliorer le code des programmes Java. Ce tutoriel se focalise sur les fonctionnalités dédiées aux collections. -
Cet article présente l'installation, la configuration et les principaux d'ElasticSearch, une bibliothèque permettant de fournir rapidement un moteur de recherche à votre application. -
Ce tutoriel vous permettra d'apprendre à concevoir et à utiliser des analyseurs à l'aide de l'outil ANTLR. -
RMI (Remote Method Invocation) est une API Java basée sur les ORB (Object Request Broker) qui permet l'invocation d'objets distants entre processus. Nous verrons comment utiliser RMI pour le rendre compatible avec le protocole IIOP et permettre ainsi des appels entre applications basées sur l'architecture CORBA et développées avec d'autres langages que Java. -
Cet article explique l'API JMX, ainsi que l'intégration et la configuration de l'adaptateur SNMP snmpAdaptor4j. -
Chapitre 5 du mémo du certifier Java SE 6 : contrôles, exceptions et assertions
par Ndjobo Armel FabriceLe but de cet article est de présenter de façon précise et concise les notions du langage Java relatives au contrôle de flux, aux exceptions et aux assertions. En clair, nous parlerons des structures conditionnelles (if-else, switch...), des boucles (while, for...), de la gestion des exceptions et enfin de l'utilisation des assertions. -
Introduction à la manipulation de cache et à la concurrence avec Guava
par Thierry Leriche-DessirierGuava est une bibliothèque, de chez Google, proposant de nombreux outils pour améliorer le code des programmes Java. Elle permet, entre autres, de manipuler les collections, de jouer efficacement avec les immutables, d'éviter la gestion des beans nuls, de s'essayer à la programmation fonctionnelle, de cacher les objets, de les simplifier, et bien d'autres choses...
Dans ce cinquième article sur Guava, nous allons découvrir comment utiliser des caches en mémoire et jouer sur la concurrence. -
Chapitre 4 du mémo du certifier Java SE 6 : les principaux opérateurs du langage Java
par Ndjobo Armel FabriceLe but de cet article est de présenter de façon précise et concise les notions du langage Java relatives aux opérateurs. Entre autres, nous parlerons des opérateurs relationnels, de l'opérateur instanceof, des opérateurs arithmétiques, de l'opérateur conditionnel et enfin des opérateurs logiques. -
Introduction aux classes utilitaires de Guava pour manipuler les types String et Primitifs
par Thierry Leriche-DessirierDécouvrez avec Guava comment se simplifier la vie avec les classes utilitaires dédiées à la manipulation des strings et des primitifs. -
Introduction aux fonctions de hashage et les fonctionnalités d'entrées/sorties avec Google Guava
par Thierry Leriche-DessirierGuava est une bibliothèque, de chez Google, proposant de nombreux outils pour améliorer le code des programmes Java. Elle permet, entre autres, de manipuler les collections, de jouer efficacement avec les immutables, d'éviter la gestion des beans nuls, de s'essayer à la programmation fonctionnelle, de cacher les objets, de les simplifier, et bien d'autres choses...
Dans ce huitième article sur Guava, vous allez voir des trucs rigolos (mais pas simples) sur les hash et vous réconcilier avec les I/O. -
Guava est une bibliothèque de chez Google, proposant de nombreux outils pour améliorer le code des programmes Java. Elle permet, entre autres, de manipuler les collections, de jouer efficacement avec les immutables, d'éviter la gestion des beans nuls, de s'essayer à la programmation fonctionnelle, de cacher les objets, de les simplifier, et bien d'autres choses... -
S'authentifier avec Facebook, Twitter ou Google, à l'aide de la bibliothèque PAC4j
par Thierry Leriche-DessirierLes sites Web modernes permettent de s'authentifier via des services comme Facebook ou Gmail en plus du classique formulaire maison. Mais multiplier les solutions, c'est aussi se compliquer la vie à mettre en place de nombreux protocoles. La bibliothèque PAC4j existe heureusement. Elle propose une interface simple pour s'identifier auprès des fournisseurs les plus populaires, en quelques lignes de code seulement. Dans cet article, nous allons voir comment faire cela en cinq minutes chrono. -
Dans ce rapide tutoriel, nous allons voir comment utiliser la bibliothèque Apache POI pour lire, manipuler et écrire des fichiers Excel 2010 depuis un programme Java. -
Présentation du projet Apache Directory, une solution LDAP très complète. Vous découvrirez le serveur LDAP, le studio et l'API Java. -
Construire un écosystème Eclipse de développement Java d'applications sémantiques avec Jena
par Michel HéonLe présent tutoriel, qui s'adresse au concepteur Java d'applications sémantiques, présente une procédure de construction d'un écosystème de développement fondé sur l'Eclipse Web Tools Project (WTP) qui intègre Apache Jena ainsi que l'API Java du RDF. -
Ce billet de blog explique comment ajouter un filigrane à chaque page d'un fichier PDF. Le filigrane peut être du texte ou une image, mais doit surtout être transparent. -
Pour ceux qui ne connaissent pas l'ITD d'AspectJ (Déclaration Inter-Types), cela permet de rajouter des éléments dans les classes via un aspect : attributs; méthodes, annotations, héritage d'interface... L'objectif de ce tutoriel est de savoir si l'ITD peut être utilisé comme accesseurs dans un Java Bean. -
Apprendre à extraire des données depuis une feuille Excel, les transformer et les sauvegarder en utilisant Apache POI
par Marc AutranCet article montre comment automatiser le chargement de données depuis un fichier Excel vers une collection Java. L'utilitaire développé s'appuie sur la célèbre bibliothèque Open Source Apache POI -
Apprendre à migrer des objets métiers de Java vers JavaScript, un billet de blog de Marc Autran
par Marc AutranUn tutoriel qui montre comment migrer des objets métiers de Java vers JavaScript. -
Ce tutoriel vous explique comment faire fonctionner une application développée en Java en tant que service Windows. Pour permettre ce fonctionnement une API JavaService est nécessaire. L'intérêt de cette API est de permettre une interaction complète avec l'instance JAVA, de pouvoir passer des arguments au lancement et d'appeler une méthode spécifique lors de l'arrêt du service. -
Apprendre à lancer un programme Java avec des paramètres avec Apache Common CLI
par Thierry Leriche-DessirierDans ce court tutoriel, nous allons voir comment utiliser la bibliothèque Common CLI pour gérer les paramètres d'entrée de vos programmes Java. -
Cet article s'intéresse à expliquer comment formater en chaîne de caractères un nombre, en utilisant la classe NumberFormat. -
Ce tutoriel vous apprend à découvrir la bibliothèque Lombok utilisée pour la génération de codes à partir d'annotations. -
Interopérabilité Java/.NET avec IKVM : apprendre à utiliser du code écrit en Java depuis un code C#
par François DorinDans ce billet de blog, nous allons avoir comment nous pouvons intégrer une classe, écrite initialement en Java, directement en C#, à travers un exemple concret : générer un PDF à partir de la bibliothèque Apache FOP -
Depuis quelques temps, on entend de plus en plus parler de HTTP/2 et de comment il va résoudre nos problèmes, comment il va améliorer telle ou telle situation. Dans cet article, nous vous proposons de partir à la découverte de ce nouveau protocole et des changements qu'il apporte avec lui. -
Apprendre à utiliser la bibliothèque Lombok avec le langage Java pour simplifier l'écriture de vos classes
par François-Xavier RobinDans ce billet, je vais présenter la bibliothèque Lombok dont je ne peux plus me passer pour mes développements Java. Cela fait maintenant plus de quatre ans que je l'utilise et tout n'est pas rose. Ce sera donc l'occasion de partager aussi certaines recommandations. -
Tutoriel pour découvrir l’API Collections de Google Guava - La classe ImmutableList
par RAUZDUEL RonyLe but de cet article est l'exploration de la classe ImmutableList de l'API Collections de la bibliothèque Guava de Google. A noter que j'ai déjà publié un premier tutoriel traitant de la classe Lists. Comme exemple nous utliserons un parc automobile, cela nous permettra de sonder de façon pratique et ludique les méthodes de cette classe. En effet de par mon expérience, j'ai pu constater que certains développeurs (et parfois moi aussi) implémentaient des fonctionnalités alors que ces dernières étaient présentes dans des bibliothèques tierces. Ainsi dans nos futurs projets nous respecterons le viel adage : "Ne réinventez pas la roue".2 commentaires Création : 15 mars 2021 · Mise à jour : 3 novembre 2021 -
Le but de cet article est l'exploration de la classe Lists de l'API Collections de la bibliothèque Guava de Google. Comme exemple nous utliserons un parc automobile, cela nous permettra de sonder de façon pratique et ludique les méthodes de cette classe. En effet de par mon expérience, j'ai pu constater que certains développeurs (et parfois moi aussi) implémentaient des fonctionnalités alors que ces dernières étaient présentes dans des bibliothèques tierces. Ainsi dans nos futurs projets nous respecterons le viel adage : "Ne réinventez pas la roue".Commentez Création : 1er mars 2021 · Mise à jour : 3 novembre 2021
-
Le cours thread et communication en Java permettra aux étudiants d'acquérir les bases de la gestion des processus dans un système d'exploitation. -
Ce tutoriel explique l'utilisation des Threads en Java, du cycle de vie à leur synchronisation. -
Aujourd'hui, le moindre équipement électronique - ordinateur, téléphone, tablette... - possède plusieurs c?urs, répartis sur un ou plusieurs processeurs. Si on souhaite en tirer le meilleur parti, il est nécessaire de se pencher sur les arcanes de la programmation concurrente. Dans cet article, nous verrons ce que sont les threads, et comment les créer et les manipuler en Java. -
Dans l'API Java, on trouve une classe au comportement tout à fait particulier, ThreadLocal. Son principe: stocker des données dans le thread courant afin de les récupérer plus tard, dans une autre méthode par exemple, sans avoir à les passer en argument à toute la chaine d'appel. Cette classe peut vous être d'un grand secours, mais elle doit être utilisée judicieusement et surtout avec extrême précaution ! -
Tutoriel expliquant la réalisation pas à pas d'un serveur multithread en Java utilisant les sockets. Ce serveur se chargera de broadcaster les messages lui arrivant à tous les clients qui y sont connectés.
Téléchargez la version PDF
Le serveur de chat décrit dans ce tutoriel dipose aussi d'un client Flash.
Voir le client Flash -
La synchronisation est un élément essentiel dès lors que vous utilisez plusieurs threads (c'est-à-dire dans quasiment toutes les applications). En effet, sans synchronisation, il est impossible de développer une application robuste qui fonctionne quel que soit l'entrelacement de l'exécution des threads. -
Ce tutoriel a pour but de présenter les principaux aspects de la gestion de sémaphores et de mutex sous Delphi et Java. Il n'est pas indispensable, mais tout de même fortement recommandé, de maîtriser les principaux concepts de la programmation multithread en Delphi ou en Java. Vous pouvez à ce sujet consulter les excellents tutoriels pour Delphi et pour Java . -
Le présent article sera consacré à l'analyse des différentes techniques permettant de réduire l'écart entre les langages C/C++ et Java dans les systèmes dits en temps réel/embarqués. -
Cet article présente les éléments de synchronisation qu'ils soient natifs du langage ou fournis par l'API. -
Apprendre la programmation concurrente en Java en utilisant les structures de données de l'API Java
par Logan MauzaizeCet article présente vise à présenter les structures données fournies par l'API. -
Cet article sert de préambule afin de poser les bases de la programmation parallèle en Java, à savoir la gestion des threads. -
Ce quatrième article vise à présenter les différents types de verrous disponibles dans l'API. -
Cet article a pour but la présentation de l’utilitaire ExecutorService défini dans l'API Java Concurrency de la bibliothèque java.util.concurrent. Cet utilitaire propose un mécanisme très simple pour adresser les problématiques de multi-threading dans un programme. Il a été introduit dans le langage Java depuis sa version 5 et a vu sa syntaxe modifiée avec le temps au gré des évolutions. Son principal apport est qu’il nous dispense des traitements « bas niveaux » et nous permet plutôt de mettre l’accent sur la définition et la conception du modèle de tâches à exécuter. Dans « bas niveaux », nous entendons, par exemple : le démarrage/arrêt des tâches, la gestion propre des tâches périodiques/sporadiques, des offsets, de l’ordonnancement, la gestion de l'interaction entre tâches.
-
Vert.x est une API asynchrone très proche du modèle d'acteurs. Vert.x est polyglotte, simple, scalable (élastique) et hautement concurrente. Vert.x est bien adapté aux architectures en microservices, mais s'intègre aussi parfaitement dans une WebApp plus classique. Dans ce premier article d'une série consacrée à Vert.x 3, nous allons tout d'abord voir comment installer le framework, écrire un premier verticle, le déployer et le tester. -
Ce tutoriel vous détaille comment utiliser RxJava pour l'écriture de codes asynchrones avec le langage Java. -
Apprendre à utiliser RXJava une bibliothèque pour faciliter la programmation asynchrone, un cours de Serge Tahé
par Serge Tahée document décrit les bases de la bibliothèque RxJava puis utilise celles-ci dans deux applications exemples : l'une dans un environnement Swing, l'autre dans un environnement Android. -
Vert.x est une API asynchrone très proche du modèle d'acteurs. Vert.x est polyglotte, simple, scalable (élastique) et hautement concurrente. Vert.x est bien adapté aux architectures en microservices, mais s'intègre aussi parfaitement dans une WebApp plus classique. Dans ce deuxième article d'une série consacrée à Vert.x 3, nous allons voir comment faire communiquer les verticles les uns avec les autres. -
Vert.x est une API asynchrone très proche du modèle d'acteurs. Vert.x est polyglotte, simple, scalable (élastique) et hautement concurrente. Vert.x est bien adapté aux architectures en microservices. Dans cet article rapide, nous allons voir comment créer une API standard avec Vert.x. Et pour cela, on se donne 5 minutes.
-
L'approche orientée objet tend à éclater les applications en composants plus simples et réutilisables. Cependant, cette approche peut vite devenir un piège lorsque le découpage s'effectue sans règles précises. Le concepteur finit par être saturé par la complexité du codage (effet spaghetti). J'en veux pour preuve ma propre expérience sur une application Java d'environ 40 000 lignes de code. Sans architecture de base, cette application est devenue progressivement ingérable avec pour conséquence l'émergence de bogues de plus en plus difficiles à corriger (effet domino). Pour réduire les risques de maintenance, il a fallu exploiter un niveau supplémentaire dans la conception objet : Les modèles de conception ou design patterns. -
Ce TP vous montre comment écrire et tester un DAO en Java. Vous allez découvrir Maven, tracer le fonctionnement avec Log4j, tester vos méthodes avec JUnit, lire des fichiers CSV avec OpenCsv et CsvEngine, gérer des ressources en Java et bien plus encore... -
Dans beaucoup d'applications informatiques, un module ou composant métier est régulièrement pollué par de multiples appels à des composants utilitaires externes. La programmation par aspect (AOP) va permettre d'extraire les dépendances entre modules concernant des aspects techniques entrecroisés et de les gérer depuis l'extérieur de ces modules en les spécifiant dans des composants du système à développer nommés aspects ; ils sont développés à un autre niveau d'abstraction. -
Cet article présente les bases du développement d'une application modulaire. Il présente également un exemple complet d'implémentation en Java. -
L'héritage est une des grandes qualités de la programmation orientée objet, ainsi qu'une de ses caractéristiques majeures. Puisque le titre de ce billet ne devrait normalement pas attirer des énergumènes quelconques, je vais partir du principe que vous connaissez les bases de la programmation orientée objet et je ne vous ferai donc pas l'insulte de faire un rappel sur l'héritage. À propos, bien que ce billet propose des exemples en Java, ses analyses et conclusions sont valables avec n'importe quel langage orienté objet. -
Introduction générale au développement orienté modèle (MDA - Model Driven Architecture). -
Choisir un langage de programmation est toujours une tâche difficile qui nécessite bien souvent de bien connaître les différentes options à notre disposition. Certaines particularités d'un langage peuvent parfois influencer votre décision en sa faveur, malgré l'absence de certaines fonctionnalités d'un autre que vous regretterez peut-être plus tard. Les paramètres optionnels et nommés sont une des fonctionnalités du langage Python que j'affectionne particulièrement. -
Introduction au développement orienté modèle (MDA - Model Driven Architecture) par la pratique. Le langage utilisé est Java. -
Cet article va vous présenter les bases de la création d'une application modulaire avec JTheque Core 2.0.3. -
Comment empêcher de lancer plusieurs fois simultanément une application Java ? -
Cet article a pour objectif de présenter les Design Patterns du « Gang of Four » avec des exemples concis appliqués à Java.
Chaque Design Pattern est présenté avec son diagramme de classes, ses objectifs, les motivations pour l'utiliser, les responsabilités des classes le constituant, puis une implémentation simple. -
Depuis l'avènement de la programmation orientée objet, les développeurs imaginent et implémentent des composants logiciels réutilisables. Les différentes techniques employées jusqu'à aujourd'hui ne sont malheureusement pas toujours parfaites. -
Dans cet article nous aborderons la mise en œuvre d'un système de plugins en Java. -
Dans cet article, je vais aborder le problème du Singleton en environnement multithread. Cette discussion nous amènera à parler du Java Memory Model et du double-check Locking qui, bien qu'encore recommandé dans de nombreux endroits, ne marche pas. -
Les membres statiques, finals et non immuables. -
L'architecture pilotée par le modèle, ou MDA, est une approche standardisée de développement qui vise à concevoir une application à un niveau plus élevé que le code, notamment grâce à l'utilisation de modèles UML et d'un générateur de code spécialisé.
Ce tutoriel présente un exemple concret d'application développée grâce à une approche MDA et au générateur open source AndroMDA. -
Ce cours présente les aspects avancés de la programmation orientée objet en Java. Il s'agit de couvrir les particularités liées à l'environnement de la machine virtuelle, les aspects de programmation concurrente, les entrées/sorties, l'introspection. -
Dernièrement j'ai aidé un stagiaire dans sa mission d'étude d'impact du remplacement d'un composant de génération graphique commercial vers une solution gratuite. Cette étude se faisait dans un environnement applicatif RCP avec utilisation de plugins ECLIPSE, avec un existant assez rude de prime abord ( beaucoup de classes, d'interfaces, de nouveautés TIGER, etc.). Ainsi dans cet environnement, le stagiaire n'était pas des plus rassurés, surtout que son niveau de JAVA était proche du néant ( désolé pour lui...)
Aussi nous avons décidé de regarder ensemble les différents aspects de la programmation objet au travers de JAVA en partant de la base, pour arriver à un miniprojet qui finalement couvrait beaucoup d'aspects intéressants. -
L'inconvénient du design pattern Visitor est qu'il fige la structure des classes à visiter. En effet, comme le visiteur implémente une méthode spécifique à chaque classe à visiter (chaque type), si une classe devait être ajoutée a posteriori, la classe Visitor devrait être surclassée, engendrant des tests de types et des transtypages. Je vous propose le design pattern Visitor Injector qui a pour but de résoudre cet aspect par injection de dépendances (disons plutôt par une approche fonctionnelle/comportementale du problème). Cette modification du patron original peut être utilisée chaque fois qu'un patron visiteur est utile et prend tout son sens dans le développement de bibliothèques flexibles. -
Un design pattern décrit une solution standard, utilisable dans la conception de logiciels, à des questions classiques et récurrentes.
Cet article vous redonne les points clés pour utiliser les patterns les plus utiles. Il vous propose surtout de télécharger des mémentos à imprimer au bureau. -
Évolution de la construction d'objets en Java, du Telescoping Constructor au Builder Pattern
par Clément HEeliouLe Software Craftsmanship est un mouvement visant, je cite le manifeste, « à relever le niveau du développement professionnel de logiciel par la pratique et en aidant les autres à acquérir le savoir-faire ». L'objectif est ainsi d'apprécier :
- pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus ;
- pas seulement l'adaptation au changement, mais aussi l'ajout constant de valeur ;
- pas seulement les individus et leurs interactions, mais aussi une communauté de professionnels ;
- pas seulement la collaboration avec les clients, mais aussi des partenariats productifs.
Dans cet article, je vous propose d'aborder concrètement l'une des façades de ce mouvement, à savoir la qualité du code. Plus précisément, je vous propose de nous attarder, par l'exemple, sur les différentes manières de construire les instances dans un langage orienté-objet, notamment au travers de variations de célèbres patrons de conception. -
Cet article présente des patterns d'implémentation avec les enums Java. -
Cet article traite du sujet du design pattern classique, le pattern Command. Après un rappel de sa structure et de ses utilisations, nous irons un peu plus loin en analysant en particulier trois variations permettant d'implémenter l'undo/redo. -
Cet article propose une implémentation du patron de conception foncteurs qui respecte le principe de signature des méthodes en s'appuyant sur les génériques. À noter que les foncteurs seront proposés dans le prochain Java 8 sous le nom des Lambdas. -
Apprendre à réaliser un refactoring de dépendances statiques avec le langage Java
par Nadia Humbert-LabeaumazDans cet épisode, Nadia vous explique comment réaliser un refactoring de dépendances statiques avec le langage Java. Le langage utilisé est Java avec l'outil de développement IntelliJ. -
Ce tutoriel s'intéresse à présenter Circuit breaker, qui est un patron de conception (design pattern) pour fiabiliser vos systèmes distribués (ou microservices). -
La POO, ou programmation orientée objet, permet de représenter un concept, une idée ou une entité du monde physique par des entités appelées objets ayant des propriétés intrinsèques et exposant des opérations publiques pour les manipuler. Ce tutoriel a pour objectif de vous apprendre les principes de la programmation orientée objet. -
L'objectif de ce billet est de présenter une implémentation simple en Java du pattern Singleton. -
Quand on fait du développement orienté objet, on cherche à construire des objets cohérents avec tous leurs attributs. Il arrive que les objets que l'on souhaite construire aient plus de trois attributs et, dans ce cas, utiliser un simple constructeur avec en paramètres tous les attributs n'est pas forcément une bonne idée ! Dans ces cas, l'utilisation d'un Builder peut être une bonne solution ! Nous allons voir ici quelques-unes des manières de faire des Builders en Java. -
Tutoriel pour apprendre à développer des objets Java et pas simplement des classes de données
par Colin DamonLorsqu'on apprend les paradigmes objets, on nous enseigne que les objets que l'on code représentent des choses du monde réel. Les attributs en sont l'état et les méthodes les actions. Alors pourquoi trouvons-nous BEAUCOUP plus de Data classes (classes avec uniquement des attributs et des getters et setters) dans nos solutions que d'objets effectuant des traitements métier ? Dans certaines équipes, faire des traitements métier dans des objets représentant le métier est même interdit parce que : « les traitements doivent être faits dans des services ! ». Depuis quelque temps j'ai pu utiliser vraiment des objets dans mon quotidien de développeur : voici mes retours !8 commentaires Création : 8 décembre 2020
-
Cet article a pour objectif de vous présenter la notion de modèles du framework Apache Wicket et ce à travers un exemple pratique et réel. -
En première approche, les traits de Scala s'apparentent à des interfaces (au sens Java). À ceci près qu'une interface ne fait que déclarer des méthodes, alors qu'un trait a la possibilité de les mettre en œuvre ainsi que de déclarer des données membres. Mais leur usage dépasse largement celui d'une interface enrichie. Ainsi, dans cet article, nous allons voir comment il est possible de combiner des traits à une classe pour la doter de comportements spécifiques. Cet article suppose une connaissance élémentaire de la syntaxe de Scala. -
Cet article est une introduction à Groovy, un langage de script pour Java inspiré entre autres de Python, Java, Ruby et Smalltalk. -
Moins attendu que Spring 3.1, mais pourtant tellement lié, Grails 2.0 est sorti le 15 décembre 2011. Mon équipe et moi-même étions impatients, car la sortie de cette version majeure était planifiée depuis plusieurs mois mais sans cesse retardée pour attendre la release finale (GA) de spring 3.1. Cela fait en effet déjà deux mois que je travaille sur la bêta, puis les releases candidates, mais sortir un produit basé sur une RC, ce n'est pas sérieux. Développeur Grails depuis trois ans, je vais vous détailler les nouveautés les plus marquantes de Grails 2.0 et de son écosystème en essayant d'aller un peu plus loin que ce qu'on peut trouver habituellement dans les RELEASES NOTES. -
Utilisation de la bibliothèque Unfiltered pour l'implémentation de services Web REST en Scala
par Florian Hussonnois (Zenika), ZenikaCet article se propose de présenter comment implémenter des services Web de type REST avec le langage fonctionnel Scala en utilisant la bibliothèque Unfiltered. -
Nombreux sont les langages dédiés à la JVM, mais aucun autre que Ceylon ne propose un système de typage aussi poussé ainsi qu'une compilation en JavaScript. À travers une série d'articles, je propose de vous faire découvrir tous les mystères de ce langage conçu par Gavin King. -
Nombreux sont les langages dédiés à la JVM, mais aucun autre que Ceylon ne propose un système de typage aussi poussé ainsi qu'une compilation en JavaScript. À travers une série d'articles, je propose de vous faire découvrir tous les mystères de ce langage conçu par Gavin King. -
Nombreux sont les langages dédiés à la JVM, mais aucun autre que Ceylon ne propose un système de typage aussi poussé ainsi qu'une compilation en JavaScript. À travers une série d'articles, je propose de vous faire découvrir tous les mystères de ce langage conçu par Gavin King. -
Cet article se propose de présenter le langage Ceylon qui s'exécute depuis une machine virtuelle Java. -
Nombreux sont les langages dédiés à la JVM, mais aucun autre que Ceylon ne propose un système de typage aussi poussé ainsi qu'une compilation en JavaScript. À travers une série d'articles, je propose de vous faire découvrir tous les mystères de ce langage conçu par Gavin King. -
Cet article vous présente un langage original, NICE , très proche du Java et introduisant des concepts nouveaux par rapport à Java mais néanmoins anciens si l'on parcourt le spectre des langages de programmation existants. Le but de cet article est de vous présenter le langage NICE, les aspects communs avec Java et d'autres langages de programmation, le tout à travers de nombreux exemples. -
Cet article va vous présenter le langage de programmation JR et les concepts de base qu'il propose. -
Ce cours de présentation et d'apprentissage du langage de programmation Scala est une traduction française du livre Scala by Example de Martin Odersky, professeur à l'École polytechnique fédérale de Lausanne et surtout créateur du langage Scala, qui combine les concepts de la programmation orientée objet et ceux de la programmation fonctionnelle. -
Comprendre les concepts clés de l'outil de build SBT : Keys et Settings
par Xavier Bucchiotty, Fabian GutierrezCe tutoriel se propose de présenter les concepts clés de SBT : Keys et Settings -
Ce tutoriel est une introduction à SBT, un outil de build utilisé par le langage Scala et Java. -
Comprendre le casting de type par le biais du mot-clé when avec le langage Kotlin
par Laurent BernabéComprendre le casting de type par le biais du mot-clé when avec le langage Kotlin -
Depuis l'annonce par Google du support de Kotlin sur Android, le langage de l'éditeur tchèque fait le bonheur des développeurs Android. Kotlin est puissant, simple à mettre en œuvre et apporte de nombreuses nouveautés. Pourtant, les développeurs mobiles n'ont pas l'exclusivité de ce langage. Kotlin peut en effet être utilisé dans n'importe quel applicatif Java. Le langage peut même compiler du code Kotlin en JavaScript voire en natif si le cœur vous en dit. Mais c'est le point qui nous intéressera le plus ici : comment positionner ce langage par rapport à Java dans une application Backend ? S'intègre-t-il facilement avec une application existante ? Comment l'écosystème Java actuel va-t-il assimiler ce nouveau langage ? Peut-il avoir un impact sur l'architecture de nos applicatifs mais surtout, qu'apporte ce langage qui soit suffisamment intéressant pour l'intégrer dans ses futurs projets voire ses projets actuels ?
-
Il existe un processus ouvert à tous permettant d'influer sur le développement de Java et appelé Java Community Process. Méconnu, il offre pourtant des perspectives intéressantes. -
Guide concernant les Certifications Java données par Oracle : les différences, un parcours type, comment s'inscrire en ligne, etc. -
Questions factices, tirées du nouveau livre concernant la certification SCJP (Sun Certified Java Programer) 310-055, écrit par Kathy Sierra et Bert Bates. -
Sun vient de rendre Java open source. Quelle est la licence qui a finalement été choisie ? Quelles en seront les conséquences pour les utilisateurs de la JRE ? Et pour les développeurs ? Vous trouverez toutes les réponses à vos questions dans cet article. -
Cet article se propose de présenter OpenJDK, l'implémentation libre de Java, en détaillant son cycle de mise à jour, la licence et les performances.
-
Ce tutoriel a pour but de présenter la sérialisation XML en Java. Il commence par les bases et continue sur les fonctionnalités plus complexes qui vous permettront une maîtrise totale de ce mécanisme. -
À travers un exemple concret, cet article présente l'API JAXB qui nous permet de transformer un fichier XML en objet Java, et vice versa. -
Dans ce tutoriel, nous allons voir comment utiliser l'API Jakarta Commons Digester qui permet de faire un mapping XML/Objet de façon relativement simple. -
Vous apprendrez dans cet article à manipuler des données XML avec le langage Java et l'API JDOM. Nous étudierons les possibilités de cette API grâce à des exemples simples.
Nous apprendrons ainsi à créer un simple fichier XML, à parcourir son arborescence et à modifier son contenu. -
Cet article présente un rapide cours d'introduction à SAX et un exemple d'implémentation d'une lecture d'un flux XML dans cette API SAX en java. -
À l'heure où SAX et DOM n'ont plus à faire leur preuve dans le traitement de documents XML, une nouvelle API fait son apparition dans le monde Java.
Celle-ci reprend les avantages de SAX, sa rapidité et faible utilisation, tout en fournissant un moyen de créer des documents XML à l'instar de DOM.
Cet article a pour but de vous présenter les bases de l'utilisation de cette nouvelle API : StAX.
Bonne lecture ! -
L'article qui suit est une introduction à l'utilisation de la technologie XPath depuis Java, grâce aux bibliothèques JDom et Jaxen. -
Cet article présente une découverte de l'API XStream pour sérialiser et désérialiser des objets Java dans des fichiers XML.