Outils pour utilisateurs

Outils du site


java:cuisine_java

Questions Générale

Qu'est-ce que le polymorphisme ?

intérêt et exemple d'application OM (Object Model)

  Le polymorphisme est un paradigme essentiel à la Programmation Orienté Objet POO,
  Elle offre la possibilité à plusieurs objets de natures différentes d'exposer
  un comportement (décrit par une interface par exemple) au système.

3 types de polymorphisme :

 
* ad-hoc : permet d'avoir les même méthodes au sein de classes différentes.
* sous-typage : permet de redéfinir le comportement d'une méthode de classe parente
* paramétrique : permet d'appliquer un mécanisme de sélection 
                pour des méthodes de même noms sur leurs paramètres 
                 add(int,int)
                 add(float,int)

Le Polymorphisme est donc une aptitude pour la POO hérite de la plupart des langages connus.

Accessibilité par défaut

- Si dans un code on a “A a;” en tant que membre d'instance, quel est son accessibilité par défaut ?

Son accessibilité est réduite à ses classes de même package et à ses classes filles, donc protected par défaut.

Tests

- Qu'est-ce qu'un test unitaire ? Framework d'application ? (Junit,Cactus,TestNG)

 Utilité des tests dans un applicatifs ?

Les tests unitaires permettent de valider un processus par vérification de son comportement avec des cas particuliers d'utilisation. La description de ces cas particuliers d'utilisations découle du périmètre fonctionnel du processus à tester.

Il existe plusieurs Frameworks facilitant l'écriture de ces jeux de tests dépendant du domaine d'application :

  • JUnit (Classe java)
  • DBUnit (SGBDR)
  • ServletUnit (Servlet Http)
  • XXXUnit
  • et des frameworks plus générique : Cactus (pour un applicatif Web-tier)

Introspection

- Qu'est-ce que l'introspection ? utilité et inconvénient ?

L'introspection est le mécanisme permettant de d'explorer toutes les possibilités d'une instance de classe durant son exécution. La vérification de type se fait de façon dynamique durant l'exécution et non au moment de la compilation. Ce mécanisme mal utilisé par un client peut fragilisé un applicatif sans que le compilateur puisse intervenir.

Permet de gérer des objets ayant des comportements et des types sans connaissance préalable de leur possibilités.

L'inconvénient réside dans le court-circuitage à la compilation des mécanisme de vérification de type du compilateur au profit d'une vérification en cours d'exécution. L'introspection est relativement déprécie sur des < JDK1.4 car très lent.

Exercice

- “il pleut dehors à Paris” —> “li tuelp srohed à sirap” (Algorithme + Java)

utilisation mécanisme itératif + pile LIFO

1/ Parcours de la chaîne avec comme séparateur “ ” 2/ Récupération des tokens 3/ Pour chaque Token deux possibilités :

  1. parcours en sens inverse et création par concaténation du token cible
    1. empilement dans une pile de chacun des caractères du token et dépilage

par concaténation

Méthodes Java utile : - StringBuffer.reverseOrder() - java.util.Stack - String.charAt(int i)


- Mécanisme de sélection de Méthodes avec deux classes A et B ?


- String str = “”

for (int i=0;i< 100000000;i++) {
str +="0";	
}
+ Quels est le défaut de ce code ? une alternative possible ?

L'op�rateur de concat�nation “+” manipule des objet de type String qui sont des objets immuables, chaque acc�s au contenus de ces chaines est donc une recopie de la chaine originale. Pour eviter les recopie d�fensive li� � l'utilisation de “+” et les concat�nations co�teuse � mesure que la chaine s'allonge, on utilisera la classe StringBuffer qui represente un objet muable, donc modifiable par r�f�rence. Les concat�nations avec StringBuffer sont des effets bords successifs sur la chaine originale ce qui limite grandement le co�t de l'op�ration (O(1) dans l'absolue)

L'alternative :

StringBuffer str = new StringBuffer (); for (int i=0;i<100000000;i++) {

str.append("0");

}


- Qu'est-ce qu'un objet muable ? immuable ?

Un objet muable est une entit� qui une fois construite et intialis� ne peut plus �tre modifi� par un tiers. Tout effet de bord sur l'objet est interdit, seul l'acc�s est autoris�. Ex : String

R�ciproque d'un objet muable, poss�de des mutateurs permettant de modifier par r�f�rence son �tat intrins�que. Ex : StringBuffer


- Listing des idiomes haute-performances

for (int i=0,size=collections.size();i<size;i++) {
 ...

}

Evite le recalcul de la taille du type abstrait � chaque passage de boucle surtout si ce calcul est co�teux.


- Qu'est-ce que MVC ? MVC2 ? quel sont les varitions autour de ces deux modeles ?

Le concept de MVC est de parvenir au d�couplage des responsabilit�s fonctionnels (Model - Controlleur - Vue) dans un appllicatif.Cela permet faciliter la maintenance et la modification de tiers sans effet de bord dans un autre tiers. Ce concept utilise le principe de modularit�, d�coupant sous-modules la r�alisation d'une tache.

MVC2 est une extension de MVC occultant la multiplicit� des Controlleurs de MVC par un seul composant de controle, mutualisant tout les interactions avec la Vue et le Model.

Deux variations existent de MVC :

mod�le passif : Seul le contr�leur peut modifier et acceder au Model.La vue y est totalement
             ind�pendante.


mod�le actif : Repose sur l'application du pattern Observ�-Observateur.Chaque modification du model

             notifie automatiquement les Vues raccord�s au model.
             Sch�ma fort interessant dans le n�cessit� d'avoir des Vues multiples.

—— Questions G�n�rale J2EE ———-

- Connaissance des Design-Pattern de Base ? Design-Pattern J2EE ?

 Inter�t des design-pattern pour les nouvelles techno (J2EE,.Net,..etc) ?

les Design-pattern sont des outils conceptuels issue de l'exp�rience de la communaut� des developpeurs permettant de r�soudre,r�duire,abstraire des probl�matiques induites par un domaine cible. Elle est �galement un outil permettant de respecter les principes de Genie logiciel (modularit�,extensibilit�, maintenabilit�,lisiblit�)

Il y a 23 Design-Pattern de base (Singleton,Facade,Fabrique,Pont,Decorateur,chaine de responsabilit�s,..etc) propre au langage issus de la POO.

Sur la plateforme J2EE, les design-pattern permettent de r�soudre un certains nombre de probl�matique li� � l'utilisation m�me des composants distribu�s ou locaux (Latence r�seaux,Congestion de flux,…) Exemple : Business Delegate,Session Facade, Value List Handler,DAO,VO,Composite Entity,Service Locator


- Singleton (Objectif fonctionnel/technique, implementation avec lazy loading, modification

 en contexte multiThread (DCL,ThreadLocal,Synchronized))

 + Que devient un singleton dans un cluster de serveur d'application *?
 + Si on declare "private static final A ..." que devient le code du singleton ?

Sur un cluster de serveur d'application , nous avons un singleton par JVM


- Caracteristique des API JDOM, SAX de java 1.4 ?

JDOM s'appuie sur le Model Objet d'une feuille XML (representation sous forme hi�rarchique) SAX s'appuie sur un mod�le evenementiel/it�ratif d'exploitation des feuilles XML.

JDOM est pr�conis� pour l'edition d'XML SAX pour sa lecture rapide

API int�gr� depuis la JDK1.4 en standard.


- Probl�matique li�s � l'utilisation des composants distribu�s ?

> Latence des R�seaux > Congestion de Flux (engorgement du r�seaux,augmentation des collisions physiques de paquets) > Transmission des objets sur le r�seaux (Serialisation,encodage ) > GEstions des exceptions reseaux (indisponibilit� du r�seau)


- Utilit� et exemple de diagrammes de collaborations et de s�quences ?

- Diff�rent types de diagramme UML ?

- Collections Java :

Que se passe-t-il si fait un get(Object o) sur une Map ?
Utilit� de la m�thode Hashcode() et de equals(Object o) ?

- Diff�rence entre Composition,agr�gation et association en UML ? donnez des exemples.

- Nouveaut�s Java 1.5 ?

—— Methodologie projet ————–

- Presentation et Avantages/Inconvenients entre m�thodolgie de developpement (XP,UP,RUP,cycle en V)

- Utilit� et presentation des outils d'automatisation de processus projet (MAVEN)

—— Couche Web-tiers —————–

- M�canisme de vie d'une JSP ?

- Ecriture d'une servlet ? m�canisme de vie d'une servlet ?

- Comment declarer une servlet dans les fichier de conf Webapps ?

- Structure d'une application Web-tiers (fichier War)

- M�canisme de cache Front*Office ? (oscache)

- Technique d'internationalisation disponible en Front-Office ? (Template JSP)

—— Couche Logique/Metier ————

- Description compl�te des EJB 2.0

- Nouvelles fonctionnalit�s EJB 3.0 (POJO)

- M�canisme de vie d'un EJB (Workflow)

——- Couche d'int�gration ————

- utilit� des classes DAO ?

- Outils de mapping , utilit� des ORM (object Relationnal mappping) ?

——- couche persistante ————–

- A partir d'un modele objet A ←→ B avec relation 1 ←→ n entre les deux, quel est sa representation en SGBDR ?

- A partir d'un modele objet A ←→ B avec relation n ←→ n entre les deux, quel est sa representation en SGBDR ?

- Qu'est-ce que LDAP ? utilit� ?

———– Conclusion ————————-

java/cuisine_java.txt · Dernière modification: 2012/02/10 23:24 (modification externe)