Chapitre8: Collections et Enumerations En JavaAziz Darouichi
Voici le chapitre 8 sur les collections et les énumerations en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Chapitre8: Collections et Enumerations En JavaAziz Darouichi
Voici le chapitre 8 sur les collections et les énumerations en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
This document discusses Java collections and provides examples of ArrayList and HashMap. It introduces collections as objects that group multiple elements and describes the two main collection hierarchies - Collection and Map. It then gives code examples demonstrating common operations on ArrayList like add, remove, contains and clear. Examples are also provided for HashMap operations including put, get, containsKey and remove.
Ce cours vise à présenter le JDBC (Java Database Connectivity) et comment utiliser JDBC à travers des applications Java à d'accéder à des bases de données.
Les primitives java, conditions, boucles..
Object, classes, Carcatéristiques...
Héritage et accessibilité (package, visibilité)
polymorphisme
Tableau et collections
Connexion base de données via JDBC
Voici le chapitre 6 sur les classes et les interfaces en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Voici le chapitre sur les classes et les objets en C++.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Séminaire sur Machines, Deep Learning For Web Mobile and Embedded Application with DL4J and TFJS :
Les vidéos de ce séminaire sont publiée sur les adresses suivantes :
- https://www.youtube.com/watch?v=uGSa4NigFKs
- https://www.youtube.com/watch?v=2yRAu78slgc
- https://www.youtube.com/watch?v=1ThjK3xLWII
- https://www.youtube.com/watch?v=N7LCa6aiqFs
Ce séminaire a été animé à l’ENSET de Mohammedia, dans le cadre du Projet Européen H2020 CybSPEED (Cyber Physical Systems for Pedagogical Rehabilitation in Special Education) dans lequel notre laboratoire de recherche SSDIA (Signaux, Systèmes Distribués et Intelligence Artificielle) est partenaire aux cotés des pays partenaires (France, Espagne, Grèce, Bulgarie, Japan et Chillie). Un projet Multi-disciplinaire autour de l'Intelligence Artificielle, visant à créer un robot destiné à assister les personnes à besoins spécifiques, en particulier les personnes atteintes par la maladie de l’autisme. Ce séminaire traite deux thématiques principales Lattice Computing animé par le professeur Vassillis Kaburlasos, EMaTTech, KAVALA, GRECE et Outils de mise en oeuvre de Machines et Deep Learning pour les applications Web Mobiles et embarquées, animé par moi même. Ce séminaire a un caractère de formation, de sensibilisation et de maîtrise des outils de développement des algorithmes de l'IA pour un public hétérogène Multi-disciplinaire (Informatique, Génie Electrique, Génie Mécanique, Ingénierie Pédagogique, Biologie, Chimie, etc..) constitué principalement des doctorants de notre Labo SSDIA, d'autres Labo affiliés au CeDOC de la FST de Mohammedia ainsi que des enseignants chercheurs de l'ENSET, de EMaTTech Kavala, Grèce et d'autres enseignants chercheurs venant de d'autres centres comme CRMF de Marrakech.
Ce séminaire vise particulièrement à expliquer quelques concepts liés à l’intelligence artificielle. Principalement Machines et Deep Learning et comment mettre en œuvre les Frameworks de machines et deep lerning dans des applications Web, Mobile et embarquées en utilisant Principalement Deeplearning4J pour les applications Java coté backend ou coté FrontEnd Desktop, Web ou Mobiles Android, et TensorFlowJS pour les applications Java Scripts coté Browser Web et Coté Applications Mobiles Hybrides ou NodeJS coté Backend.
Cette série de vidéo aborde les éléments suivants :
• Concepes généraux de l’Intelligence Artificielle, L’IA Distribuée et Systèmes Multi Agents
• Concepts fondamentaux de Machines et Deep Learning
• Réseaux de neurones artificiels : MLP, CNN
• Période d’incertitude des réseaux de neurones
• Catalyseur de l’Intelligence Artificielle
o Architectures Parallèles GPU (CUDA, OpenCL)
o Systèmes Distribués
o Application Mobile et IOT
o Algorithmes de MDL
o Framework de MDL
• Machines et Deep Learning avec TensorFlowJS : Architecture
o Architecture et Mise en oeuvre
• Machines et Deep Learning avec le Framework DL4J
o Architecture et Mise en oeuvre
This document discusses Java collections and provides examples of ArrayList and HashMap. It introduces collections as objects that group multiple elements and describes the two main collection hierarchies - Collection and Map. It then gives code examples demonstrating common operations on ArrayList like add, remove, contains and clear. Examples are also provided for HashMap operations including put, get, containsKey and remove.
Ce cours vise à présenter le JDBC (Java Database Connectivity) et comment utiliser JDBC à travers des applications Java à d'accéder à des bases de données.
Les primitives java, conditions, boucles..
Object, classes, Carcatéristiques...
Héritage et accessibilité (package, visibilité)
polymorphisme
Tableau et collections
Connexion base de données via JDBC
Voici le chapitre 6 sur les classes et les interfaces en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Voici le chapitre sur les classes et les objets en C++.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Séminaire sur Machines, Deep Learning For Web Mobile and Embedded Application with DL4J and TFJS :
Les vidéos de ce séminaire sont publiée sur les adresses suivantes :
- https://www.youtube.com/watch?v=uGSa4NigFKs
- https://www.youtube.com/watch?v=2yRAu78slgc
- https://www.youtube.com/watch?v=1ThjK3xLWII
- https://www.youtube.com/watch?v=N7LCa6aiqFs
Ce séminaire a été animé à l’ENSET de Mohammedia, dans le cadre du Projet Européen H2020 CybSPEED (Cyber Physical Systems for Pedagogical Rehabilitation in Special Education) dans lequel notre laboratoire de recherche SSDIA (Signaux, Systèmes Distribués et Intelligence Artificielle) est partenaire aux cotés des pays partenaires (France, Espagne, Grèce, Bulgarie, Japan et Chillie). Un projet Multi-disciplinaire autour de l'Intelligence Artificielle, visant à créer un robot destiné à assister les personnes à besoins spécifiques, en particulier les personnes atteintes par la maladie de l’autisme. Ce séminaire traite deux thématiques principales Lattice Computing animé par le professeur Vassillis Kaburlasos, EMaTTech, KAVALA, GRECE et Outils de mise en oeuvre de Machines et Deep Learning pour les applications Web Mobiles et embarquées, animé par moi même. Ce séminaire a un caractère de formation, de sensibilisation et de maîtrise des outils de développement des algorithmes de l'IA pour un public hétérogène Multi-disciplinaire (Informatique, Génie Electrique, Génie Mécanique, Ingénierie Pédagogique, Biologie, Chimie, etc..) constitué principalement des doctorants de notre Labo SSDIA, d'autres Labo affiliés au CeDOC de la FST de Mohammedia ainsi que des enseignants chercheurs de l'ENSET, de EMaTTech Kavala, Grèce et d'autres enseignants chercheurs venant de d'autres centres comme CRMF de Marrakech.
Ce séminaire vise particulièrement à expliquer quelques concepts liés à l’intelligence artificielle. Principalement Machines et Deep Learning et comment mettre en œuvre les Frameworks de machines et deep lerning dans des applications Web, Mobile et embarquées en utilisant Principalement Deeplearning4J pour les applications Java coté backend ou coté FrontEnd Desktop, Web ou Mobiles Android, et TensorFlowJS pour les applications Java Scripts coté Browser Web et Coté Applications Mobiles Hybrides ou NodeJS coté Backend.
Cette série de vidéo aborde les éléments suivants :
• Concepes généraux de l’Intelligence Artificielle, L’IA Distribuée et Systèmes Multi Agents
• Concepts fondamentaux de Machines et Deep Learning
• Réseaux de neurones artificiels : MLP, CNN
• Période d’incertitude des réseaux de neurones
• Catalyseur de l’Intelligence Artificielle
o Architectures Parallèles GPU (CUDA, OpenCL)
o Systèmes Distribués
o Application Mobile et IOT
o Algorithmes de MDL
o Framework de MDL
• Machines et Deep Learning avec TensorFlowJS : Architecture
o Architecture et Mise en oeuvre
• Machines et Deep Learning avec le Framework DL4J
o Architecture et Mise en oeuvre
(Slides de la présentation à la conférence Agile France 2010)
Vous avez lu la cheatsheet de JMock, la documentation d’EasyMock, la FAQ de Mockito et pourtant, la moitié de votre code n’est toujours pas couvert. Vous n’arrivez juste pas à poser de tests dessus.
Votre code est intestable.
L’objectif de la session est de montrer pourquoi certains codes ne peuvent pas être testés et ce qui peut être fait pour y remédier. Nous verrons ainsi pourquoi il vaut mieux respecter la loi de Demeter et faire de l’injection de dépendances. Nous aborderons également les problèmes des classes avec trop de responsabilités et des états globaux.
- Les constructeurs
- La gestion des exceptions
- Les getters et les setters
- Lecture du clavier
- Les references
- Surcharge des méthodes
- Le mot clé this
- la méthode String tostring()
Tester unitairement une application javaAntoine Rey
Présente les différents types de tests automatisés, les objectifs des tests unitaires, les stratégies de mise en œuvre, les bonnes pratiques, les difficultés, ce qu'est un mock, différents outils (Unitils, Mockito, DbUnit, Spring Test) et des exemples de tests (DAO et contrôleurs Spring MVC), sans oublier le test de code legacy.
2. Exception
public class testException {
public static void main (String[] args)
{
int i = 3 ;
int j = 0 ;
System.out.println ("resultat = " + (i/j));
}
}
2
}
Exception in thread "main" java.lang.ArithmeticException: / by zero
at testException.main(testException.java:6)
L’exception est une erreur qui se produit, soudainement, lors de l’exécution d’un programme
Deux solutions:
-laisser le programme se terminer avec une erreur,
-essayer, malgré l'exception, de continuer l'exécution normale.
Mouna Torjmen Khemakhem
3. Exception
Une exception :
– est un objet, instance d'une classe d'exception
– provoque la sortie d'une méthode
– correspond à un type d'erreur
– contient des informations sur cette erreur
3
Mouna Torjmen Khemakhem
5. • Throwable est la classe de base, à partir de laquelle vont
dériver toutes les exceptions.
• Error: Elle gère les erreurs liées à la machine virtuelle
(LinkageError, ThreadDeath etc.)
• Exception: contient l'ensemble des exceptions gérées par le
Programmeur (ArithmeticException etc.).
• RunTimeException: regroupe les erreurs de base(Arithmetic,
etc.)etc.)
• IOException: regroupe les erreurs entrée/sortie.
• Error et RunTimeException appartiennent à la catégorie
« uncheked » donc "throws" n'est pas nécessaire à coté de la
méthode qui lance une exception de cette catégorie là.
• Toutes les autres excéptions (y compris donc celles créées par
le programmeur) appartiennent à la catégorie des "checked" où
l'utilisation de "throws" est exigée. 5
Mouna Torjmen Khemakhem
6. Checked Exception
• Se sont les exceptions vérifiées lors du
compilation. Si un code d’une méthoed capte
(throws) une exception “checked”, alors cette
méthode doit soit traiter cette exception soit
spécifier l’exception grâce au mot clé
“throws”.
6
Mouna Torjmen Khemakhem
7. Checked Exception
import java.io.*;
class Main {
public static void main(String[] args) {
FileReader file = new FileReader("C:testa.txt");
BufferedReader fileInput = new BufferedReader(file);
// Print first 3 lines of file "C:testa.txt"// Print first 3 lines of file "C:testa.txt"
for (int counter = 0; counter < 3; counter++)
System.out.println(fileInput.readLine());
fileInput.close();
}
}
Output:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported
exception java.io.FileNotFoundException; must be caught or declared to be thrown at
Main.main(Main.java:5)
Mouna Torjmen Khemakhem
8. Checked Exception
• Pour résoudre le probleme, soit on spécifie une liste
d’exceptions, soit on utilise le bloc try/catch.
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
FileReader file = new FileReader("C:testa.txt");
8
FileReader file = new FileReader("C:testa.txt");
BufferedReader fileInput = new BufferedReader(file);
// Print first 3 lines of file "C:testa.txt"
for (int counter = 0; counter < 3; counter++)
System.out.println(fileInput.readLine());
fileInput.close();
}
}
Output: First three lines of file “C:testa.txt”
Mouna Torjmen Khemakhem
9. Unchecked exception
• Se sont des exceptions qui ne sont pas vérifiés
lors du compilation. En java, les exceptions
sous les classes Error et RuntimeException
sont “unchecked”, tout le reste soussont “unchecked”, tout le reste sous
throwable est “checked”.
Mouna Torjmen Khemakhem
10. Déclenchement des exceptions
• Une exception peut être déclenchée de deux
façons :
- Suite à une erreur d’exécution dans le programme
JAVA, la JVM génère uneJAVA, la JVM génère une
exception(RunTimeException, Error),
- Le développeur peut, à son tour, déclencher une
exception au sein de son programme (qui étend la
classe Exception).
10
Mouna Torjmen Khemakhem
11. Gestion de l’exception
Il y a deux façons de réagir au déclenchement
d'une exception pour un programme :
soit l'exception est traitée localement au code
exécuté.
soit l'exception est transmise à la fonction
appelante, qui elle-même peut choisir ce qu'elle
en fait.
11
Mouna Torjmen Khemakhem
12. Gestion de l’exception (active avec
try/catch)
try { bloc de programme susceptible de provoquer une exception }
catch (TypeException e)
{ bloc de traitement de l'exception }
finally
{Le block finally est un block optionnel
contenant des instructions qui seront toujours exécutées quelque soit le
On peut, par exemple, fermer un fichier
contenant des instructions qui seront toujours exécutées quelque soit le
résultat du try }
le bloc try et les gestionnaires associés doivent être contigus.
try
{ .....
}
.....
.....
catch (ErrConst) // erreur : catch doit être contigu au bloc try
{ ..... } 12
Mouna Torjmen Khemakhem
13. Gestion de l’exception (gestion active
avec try/catch)
• Le bloc try est exécuté jusqu'à ce qu'il se termine avec
succès ou bien qu'une exception soit levée.
• Les clauses catch sont examinées l'une après l'autre dans
le but d'en trouver une qui traite cette classe d'exceptions.le but d'en trouver une qui traite cette classe d'exceptions.
• Les clauses catch doivent donc traiter les exceptions de la
plus spécifique à la plus générale.
• Si une clause catch convenant à cette exception a été
trouvée et le bloc exécuté, l'exécution du programme
reprend son cours.
13
Mouna Torjmen Khemakhem
14. Gestion de l’exception (gestion
active avec try/catch)
public class testException{
public static void main (java.lang.String[] args){
int i = 3 ;
int j = 0 ;
try {try {
System.out.println ("résultat = " + (i/j));
}
catch (ArithmeticException e){
System.out.println(“Exception mathématique“);
}
catch (Exception e){
System.out.println(“Exception inconnue“);
}
}
}
14
Mouna Torjmen Khemakhem
15. int[] tableau = new int[30],i ;
// Initilialisation du tableau avec
// une boucle infinie d’où ArrayIndexOutOfBoundsException
try {
for (i = 0 ; i<max; i ++)
tableau[i] = i ;
}
Gestion de l’exception (gestion
active avec try/catch)
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println ( “Erreur : dépassement d’indice” ) ;
}
finally {
System.out.println (“Taille du tableau : ” + tableau.length) ;
}
Exécution si max>30:
Erreur : dépassement d’indice
Taille du tableau : 30
Exécution si max=30:
Taille du tableau : 30
15
Mouna Torjmen Khemakhem
16. Gestion de l’exception (gestion
passive avec throws)
• Afin de déléguer à la méthode appelante une
exception qu'il ne veut pas traiter, le terme
throws est rajouté, par le programmeur, à la
déclaration de la méthode dans laquelledéclaration de la méthode dans laquelle
l'exception est susceptible de se manifester.
public void maMethode() throws IOException
{
// ne traite pas l'exception IOException
// mais est susceptible de la générer
}
16
Mouna Torjmen Khemakhem
17. Gestion de l’exception
• Si elles ne sont pas immédiatement capturées par un
bloc catch, les exceptions se propagent en remontant la
pile d'appels des méthodes, jusqu'à être traitées.
• Si une exception n'est jamais capturée, elle se propage
jusqu'à la méthode main(), ce qui pousse l'interpréteurjusqu'à la méthode main(), ce qui pousse l'interpréteur
Java à afficher un message d'erreur et à s'arrêter.
• L'interpréteur Java affiche un message identifiant :
– l'exception,
– la méthode qui l'a causée,
– la ligne correspondante dans le fichier.
17
Mouna Torjmen Khemakhem
18. Exception personnalisée
• Le programmeur peut lever ses propres
exceptions à l'aide du mot réservé throw.
• throw prend en paramètre un objet instance de
Throwable ou d'une de ses sous-classes.
• Le mot-clé throw fait partie des mots-clés
réservés du langage Java, et il permet de forcer la
génération d'une exception, représentée par l'objet
qu'on lui passe en paramètre.
throw new MonException ("Exception personnalisée !!!");
18
Mouna Torjmen Khemakhem
19. Exception personnalisée
• Créer une classe héritant de la classe Exception:
class MonException extends Exception { }
• renvoyer l'exception levée à la classe appelante:
class Personneclass Personne
{
public Personne(int num, int age) throws MonException //méthode susceptible de
déclencher l’erreur
{
if ( (num<0) || (age<0)) throw new MonException() ; // lance une exception
//de type MonException
this.num = num ;
this.age = age ;
}
}
19
Mouna Torjmen Khemakhem
23. La classe Throwable
• Sous classe de la classe Objet.
• Les méthodes de la classe Throwable:
– String getMessage(): lecture du message
– void printStackTrace(): affiche l’exception– void printStackTrace(): affiche l’exception
23
Mouna Torjmen Khemakhem
24. La classe Throwable
public class testException{
public static void main (java.lang.String[] args){
int i = 3 ;
int j = 0 ;
try { System.out.println ("résultat = " + (i/j)); }
catch (ArithmeticException e){
System.out.println ("getmessage ");
System.out.println (e.getMessage());
System.out.println (" ");
System.out.println ("toString ");
24
System.out.println ("toString ");
System.out.println (e.toString());
System.out.println (" ");
System.out.println ("printStackTrace");
e.printStackTrace() ;
}
}
}
getmessage
/ by zero
toString
java.lang.ArithmeticException: / by zero
printStackTrace
java.lang.ArithmeticException: / by zero
at testException.main(testException.java:5)Mouna Torjmen Khemakhem