Affichage des articles dont le libellé est core. Afficher tous les articles
Affichage des articles dont le libellé est core. Afficher tous les articles

Questions Java core

Qu’est-ce que JMX ?
  1. Java Messaging eXtended : C’est une API qui permet d’envoyer des messages via SMTP.
  2. C’est une API pour permettre un dialogue standard entre des applications ou des composants via des brokers de messages.
  3. JMX (Java Management Extensions) est une spécification qui définit une architecture, une API et des services pour permettre de surveiller et de gérer des ressources en Java.
  4. C’est une API pour permettre un dialogue asynchrone entre des applications ou des composants via des brokers de messages.

Equals et Hashcode : Pourquoi et comment les redéfinir

Lorsque l'on veut utiliser des objets, plus précisément des bean entités, dans des collections, il faut redéfinir les méthodes equals() et hashcode(). Il est judicieux de réfléchir à la meilleure façon de les implémenter.

Initialisation de classe et d'instance

Initialisation de classe

Java permet d'écrire du code d'initialisation de classe qui sera exécuté lors du chargement de la classe (en même temps que l'initialisation des champs statiques).

Ce bloc sert justement à initialiser les variables static. Il est appelé initialiseur statique.

Il est constitué d'un bloc d'instructions (entre accolades) précédé du mot-clé static.

Les modificateurs

Les modificateurs d'accès

Un modificateur indique si les autres classes de l'application pourront accéder ou non à la classe / méthode / membre (appelé par la suite « item »). Il  permet de contrôler la visibilité des différents items et d'empêcher que des actions illégales soient effectuées sur les items.

- public : toutes les classes peuvent accéder à l'item
- protected : seules les classes dérivées et les classes du même package peuvent accéder à l'item
- private : l'item est seulement accessible depuis l'intérieur de la classe où il est défini.
- (par défaut) : sans modificateur d'accès, seules les classes du même package peuvent accéder à l'item.

Snippets Java

Itération inverse

En utilisant un ListIterator, qui dispose de méthodes hasPrevious() et previous() :


List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
ListIterator
<Integer> it = nums.listIterator(nums.size());
while(it.hasPrevious()) {
   
Integer num = it.previous();
   
System.out.println(num);
}

Différences entre classes abstraites et interfaces

- Une classe peut implémenter autant d'interfaces qu'elle veut.
- Mais elle ne peut étendre qu'une seule classe abstraite.

- Une classe abstraite peut avoir des méthodes nom abstraites.
- Une interfaces n'a que des méthodes abstraites.

- Une classe abstraite peut déclarer et utiliser des variables.
- Une interface ne peut déclarer que des constantes static final.

- Une classe abstraite peut déclarer ses méthodes public, protected, private, ou package (par défaut).
- Pour une interface, les méthodes sont implicitement public.

- Une classe abstraite peut définir des constructeurs.
- Une interface ne le peut  pas.