Gestion de l'environnement Java et optimisation des performances
Compoasnts clés de l'écosystème Java
Collecte des déchets (Garbage Collection)
Définition et avantages
La collecte des déchets (GC) est un mécanisme d'allocation et de libération automatique de la mémoire. Il améliore l'abstraction dans le développement logiciel, permet aux programmeurs de se concentrer sur les fonctionnalités métier sans gérer ...
Publié le 16 juin à 21h58
Comprendre le fonctionnement interne de HashMap en Java 8
La classe HashMap est un incontournable des entretiens techniques pour les développeurs Java. Que vous soyez débutent ou architecte, sa structure interne permet d'évaluer vos connaissances sur les collections, mais aussi votre maîtrise des structures de données fondamentales et de la gestion de la mémoire dans la JVM.
L'évolution de HashMap : d ...
Publié le 13 juin à 18h42
Questions avancées sur Java pour les entretiens techniques
Différentes méthodes de création d'objets
Utilisation du mot-clé new : Cette approche permet de créer une nouvelle instance dans la mémoire heap.
Via la réflexion : Le mécanisme de réflexion de Java offre la possibilité de créer dynamiquement des objets pendant l'exécution. On peut utiliser la méthode newInstance() de la classe Class ou ...
Publié le 12 juin à 23h36
Reproduire un débordement de la PermGen ou du Metaspace
Pour comprendre comment simuler un dépassement de mémoire dans la PermGen ou le Metaspace, commençons par examiner ce qui y est stocké : des informations de types, des constantes, des variables statiques, et le cache de code compilé à la volée.
Les constantes, comme celles obtenues via String.intern(), étaient gérées différemment selon les vers ...
Publié le 11 juin à 03h51
Script Shell pour la Gestion du Cycle de Vie des Applications Java sous Linux
Gestion Manuelle des Processus Java
Avant d'automatiser le déploiement, il est utile de comprandre les commandes natives pour interagir avec les applications Java sur un système Linux.
Lancement d'une application :
nohup java -jar mon-application.jar > /dev/null 2>&1 &
Identification du PID :
# Utilisation de jps (inclus dans le ...
Publié le 9 juin à 19h59
Mise en œuvre d'un cache en mémoire utilisant des références souples en Java
Les types de références dans la JVM
La machine virtuelle Java (JVM) gère quatre catégories de références : les références fortes, les références souples, les références faibles et les références fantômes. Ce texte se concentre sur les références fortes et souples.
Référence forte
Une référence forte est créée lors de l'instanciation d'un objet ...
Publié le 9 juin à 16h26
Résolution d'un problème de participation à un tirage au sort avec des tentatives disponibles
Lors de tests sur une application bancaire mobile, un problème a été identifié : les utilisateurs pouvaient voir leur nombre de tentatives de tirage au sort disponibles, mais en cliquant pour participer, un message indiquait qu'ils ne répondaient pas aux conditions requises. Les journaux d'application et les tests locaux n'ont pas reproduit l'e ...
Publié le 8 juin à 00h18
Gestion des exceptions courantes en Java
La gestion des erreurs est une compétence fondamentale en développement logiciel, et Java, avec son système d'exceptions robuste, offre de nombreux mécanismes pour y parvenir. Comprendre les exceptions les plus fréquentes et savoir comment les résoudre est essentiel pour construire des applications fiables et performantes. Ce guide détaille plu ...
Publié le 4 juin à 19h35
Processus de compilation et d'exécution d'un programme Java : vie d'un objet (chargement des classes et chargeurs)
Les deux étapes fondamentales d'un programme Java
Le parcours d'un programme Java de sa source à son exécution implique deux phases majeures :
Le fichier source (extension .java) est compilé en code octet (extension .class) par le compilateur.
Le code octet est interprété et exécuté par la machine virtuelle Java (JVM).
La compilation génère u ...
Publié le 2 juin à 04h59
Architecture et Mécanisme de Chargement des Classes en Java
Phases du Cycle de Vie d'une Classe
Le processus d'intégration d'une classe dans la machine virtuelle se décompose en trois étapes fondamentales :
1. Chargement (Loading)
Cette phase consiste à lire le fichier binaire .class et à l'introduire dans la mémoire de la JVM. Une structure de données interne est créée dans la zone méthode (Métaspace d ...
Publié le 2 juin à 02h04